Veho Tech · Schema
WebhookEvent
LogisticsShippingLast-Mile DeliveryPackage TrackingE-CommerceDeliveryWebhooks
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/veho-tech/refs/heads/main/json-schema/veho-tech-webhook-event.json",
"title": "WebhookEvent",
"x-generated": "2026-07-21",
"x-method": "derived",
"x-source": "openapi/veho-tech-api-openapi-original.yml#/components/schemas/WebhookEvent",
"$ref": "#/$defs/WebhookEvent",
"$defs": {
"OrderRequest": {
"type": "object",
"properties": {
"destination": {
"$ref": "#/$defs/OrderAddress"
},
"fromAddress": {
"description": "Address where this order is originating from. Required only if requesting a quote\nwith the order, as this is used to infer the nearest supported Veho injection facility",
"$ref": "#/$defs/FromAddress"
},
"fromName": {
"type": "string",
"description": "Any name you want to use to identify where the order is coming from"
},
"serviceClass": {
"type": "string",
"default": "groundPlus",
"description": "Requested class of service. The SLA for how long it will take a package to reach its destination, once it has been injected into a Veho facility",
"enum": [
"nextDay",
"sameDay",
"twoDay",
"vehoValue",
"groundPlus",
"premiumEconomy",
"expressAir",
"groundPlusOne",
"groundPlusTwo",
"groundPlusThree",
"groundPlusFour"
]
},
"recipient": {
"type": "string",
"description": "Full name of recipient."
},
"externalId": {
"type": "string",
"description": "Any ID you want to associate with this order, e.g. your order ID."
},
"merchantId": {
"type": "string",
"description": "If you are shipping on behalf of a merchant and have registered that merchant with us, supply that ID here."
},
"packages": {
"type": "array",
"items": {
"$ref": "#/$defs/OrderRequestPackage"
}
},
"company": {
"type": "string",
"description": "Recipient's company, if applicable."
},
"phone": {
"type": "string",
"description": "Recipient's phone number (used for SMS)."
},
"email": {
"type": "string",
"format": "email",
"description": "Recipient's email address. Used for delivery notifications and verification communications. May be required depending on your account configuration and delivery verification settings."
},
"instructions": {
"type": "string",
"description": "Any additional delivery instructions provided by recipient to assist driver with delivery."
},
"slaDeliveryDate": {
"type": "string",
"format": "date",
"description": "A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package must be delivered. The date must be the next day or greater. If not included, Veho will generate one for you. By standard, that date will be the first scan in a Veho warehouse + days from service class.\n\nNote: Veho will disregard any date provided in slaDeliveryDate for any package marked as premiumEconomy in the serviceClass."
},
"consumerExpectedServiceDate": {
"type": "string",
"format": "date",
"description": "A string in the ISO 8601 calendar date and time extended format, e.g. 2023-05-19T12:34:56.789Z, representing the date and time by which the customer is expecting the package to be delivered."
},
"packageCount": {
"type": "integer",
"description": "Number of packages associated with this order. Use this field to create one or more packages without supplying additional information. To include package-specific information, use the packages field instead.",
"writeOnly": true,
"minimum": 1
},
"rate": {
"type": "number",
"description": "Deprecated rate field",
"deprecated": true,
"x-internal": true
}
},
"required": [
"destination",
"recipient",
"fromAddress"
],
"title": "Order Request",
"additionalProperties": false
},
"PatchOrderRequest": {
"type": "object",
"properties": {
"instructions": {
"type": "string",
"description": "Delivery instructions for the order"
}
}
},
"OrderResponse": {
"title": "Order Response",
"type": "object",
"properties": {
"_id": {
"type": "string",
"readOnly": true
},
"createdAt": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"clientId": {
"type": "string",
"description": "Client ID",
"readOnly": true
},
"lastEvent": {
"type": "string",
"readOnly": true
},
"eventLog": {
"type": "array",
"readOnly": true,
"items": {
"$ref": "#/$defs/OrderEvent"
}
},
"serviceType": {
"type": "string",
"description": "Requested type of service, currently delivery or pickup.",
"enum": [
"delivery",
"pickup"
],
"readOnly": true
},
"destination": {
"$ref": "#/$defs/OrderAddress"
},
"fromAddress": {
"$ref": "#/$defs/FromAddress"
},
"fromName": {
"type": "string",
"description": "Any name you want to use to identify where the order is coming from"
},
"serviceClass": {
"type": "string",
"default": "groundPlus",
"description": "Requested class of service. The SLA for how long it will take a package to reach its destination, once it has been injected into a Veho facility",
"enum": [
"nextDay",
"sameDay",
"twoDay",
"vehoValue",
"groundPlus",
"premiumEconomy",
"expressAir",
"groundPlusOne",
"groundPlusTwo",
"groundPlusThree",
"groundPlusFour"
]
},
"recipient": {
"type": "string",
"description": "Full name of recipient."
},
"externalId": {
"type": "string",
"description": "Any ID you want to associate with this order, e.g. your order ID."
},
"merchantId": {
"type": "string",
"description": "If you are shipping on behalf of a merchant and have registered that merchant with us, supply that ID here."
},
"company": {
"type": "string",
"description": "Recipient's company, if applicable."
},
"phone": {
"type": "string",
"description": "Recipient's phone number (used for SMS)."
},
"email": {
"type": "string",
"format": "email",
"description": "Recipient's email address. Used for delivery notifications and verification communications. May be required depending on your account configuration and delivery verification settings."
},
"instructions": {
"type": "string",
"description": "Any additional delivery instructions provided by recipient to assist driver with delivery."
},
"slaDeliveryDate": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package must be delivered. The date must be the next day or greater. If not included, Veho will generate one for you. By standard, that date will be the first scan in a Veho warehouse + days from service class.\n\nNote: Veho will disregard any date provided in slaDeliveryDate for any package marked as premiumEconomy in the serviceClass."
},
"consumerExpectedServiceDate": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$",
"description": "A string in the ISO 8601 calendar date and time extended format, e.g. 2023-05-19T12:34:56.789Z, representing the date and time by which the customer is expecting the package to be delivered."
},
"packages": {
"type": "array",
"items": {
"$ref": "#/$defs/PackageResponse"
}
},
"rate": {
"type": "number",
"description": "Deprecated rate field",
"deprecated": true,
"x-internal": true
}
},
"description": "The Order is the container for any number of Packages going to the same recipient and address. An Order can have a single Package, or you can add as my packages to an order as you like."
},
"QuotedOrderResponse": {
"additionalProperties": true,
"title": "Order Response with Quoted Packages",
"allOf": [
{
"$ref": "#/$defs/OrderResponse"
},
{
"type": "object",
"properties": {
"packages": {
"type": "array",
"items": {
"$ref": "#/$defs/QuotedPackageResponse"
}
}
}
}
]
},
"OrderRequestPackage": {
"type": "object",
"title": "Order Request Package",
"additionalProperties": false,
"x-examples": {
"example-1": {
"externalId": "myPackageId1",
"length": 12,
"width": 10,
"height": 9,
"weight": 25,
"declaredValue": 7500,
"barCode": "GqN8v5wvGNxmnFu4Y",
"quoteId": "dd4b0d81-a237-44c6-89f1-3be7650bb7ff"
}
},
"examples": [
{
"externalId": "myPackageId1",
"length": 12,
"width": 10,
"height": 9,
"weight": 25,
"declaredValue": 7500,
"barCode": "GqN8v5wvGNxmnFu4Y",
"quoteId": "dd4b0d81-a237-44c6-89f1-3be7650bb7ff"
}
],
"properties": {
"externalId": {
"type": "string",
"description": "Any ID you want to associate with this package. Note that you should associate an Order ID with the Order object."
},
"length": {
"type": "number",
"maximum": 48,
"description": "Length (inches) of the package. Required if requesting a quote with a\nnew order. The package volume (length * width * height) cannot exceed 9849.6 cubic inches (5.7 cubic feet)."
},
"lengthDim": {
"type": "integer",
"maximum": 48,
"description": "Alias for length. Do not use as future support is not guaranteed",
"deprecated": true
},
"width": {
"type": "number",
"maximum": 48,
"description": "Width (inches) of the package. Required if requesting a quote with a\nnew order. The package volume (length * width * height) cannot exceed 9849.6 cubic inches (5.7 cubic feet)."
},
"height": {
"type": "number",
"maximum": 48,
"description": "Height (inches) of the package. Required if requesting a quote with a\nnew order. The package volume (length * width * height) cannot exceed 9849.6 cubic inches (5.7 cubic feet)."
},
"weight": {
"type": "number",
"maximum": 50,
"description": "Weight (pounds) of the package. Required if requesting a quote with a\nnew order"
},
"declaredValue": {
"type": "number",
"description": "Declared value of package, in USD pennies (5000 is $50 USD)."
},
"signatureRequired": {
"description": "Specify whether recipient has to sign for this package. Not currently supported by operations and will always be set to false.",
"default": false,
"deprecated": true
},
"barCode": {
"type": "string",
"description": "The unique alphanumeric barcode printed on the package label. Must be between 14 and 20 characters. For packages handled by a Veho delivery partner, the submitted barcode will be ignored, and trackingId will be used as the barcode instead.",
"minLength": 14,
"maxLength": 20,
"pattern": "^[a-zA-Z0-9]+$"
},
"description": {
"type": "string",
"description": "Description of the package. Note that this description will appear on the label."
},
"specialHandling": {
"$ref": "#/$defs/SpecialHandling"
},
"attendedDelivery": {
"$ref": "#/$defs/AttendedDelivery"
},
"quoteId": {
"type": "string",
"description": "The ID of the quote that was used to rate this package. Represented as a UUID.",
"format": "uuid"
},
"dispatchDate": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package is expected to depart your facility. The date must be today or later. It cannot be in the past. If the dispatch date is not included, the current timestamp will be used."
},
"shipDate": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package is expected to be tendered. The date must be today or greater. It cannot be in the past."
},
"tenderFacilityId": {
"$ref": "#/$defs/FacilityId"
}
}
},
"SpecialHandling": {
"title": "Special Handling",
"additionalProperties": false,
"type": "object",
"description": "Special handling modifiers.",
"properties": {
"dryIce": {
"$ref": "#/$defs/DryIce"
},
"hazmat": {
"$ref": "#/$defs/Hazmat"
}
}
},
"DryIce": {
"title": "Dry Ice",
"additionalProperties": false,
"deprecated": true,
"type": "object",
"description": "Note that Veho no longer supports shipping dry ice, and will reject packages containing dry ice. Indicates that this package contains dry ice (carbon dioxide, solid).",
"required": [
"weight"
],
"properties": {
"weight": {
"type": "number",
"description": "Weight of dry ice, in pounds. Will be rounded to 3 decimal places if more than 3 are provided.",
"minimum": 0
}
}
},
"Hazmat": {
"title": "Hazmat (Hazardous Materials)",
"additionalProperties": false,
"type": "object",
"description": "Indicates that this package contains hazardous materials. If you intend to ship hazardous materials, please get in contact with a Veho representative.",
"required": [
"limitedQuantity"
],
"properties": {
"limitedQuantity": {
"type": "boolean",
"description": "Indicates whether this package contains limited quantity (LQ) hazardous materials or not."
}
}
},
"AttendedDelivery": {
"title": "Attended Delivery",
"additionalProperties": false,
"type": "object",
"description": "Configuration for attended delivery on this package. Attended delivery requires interaction between the driver and the recipient to confirm delivery. Currently only PIN verification is supported. Required fields within this object may vary based on your account configuration.",
"required": [
"verificationType"
],
"properties": {
"verificationType": {
"type": "string",
"enum": [
"pinVerification"
],
"description": "The type of delivery verification required for this package.\npinVerification \u2014 A unique PIN is sent to the recipient and must be provided to the driver to release the package."
}
}
},
"PackageResponse": {
"additionalProperties": true,
"title": "Package Response",
"type": "object",
"properties": {
"_id": {
"type": "string",
"description": "Unique Package ID. Generated by Veho.",
"readOnly": true
},
"orderId": {
"type": "string",
"description": "Id of the order this package belongs to.",
"readOnly": true
},
"clientId": {
"type": "string",
"description": "Client ID",
"readOnly": true
},
"pdfShippingLabelLink": {
"type": "string",
"description": "Link to pdf shipping label file. Note that while the label link is immediately generated with the order, please account for an extra 100ms-5000ms after order creation for the label to be generated. Before that, this link may return a 404 error.\n",
"readOnly": true
},
"pngShippingLabelLink": {
"type": "string",
"description": "Link to png shipping label file. Note that while the label link is immediately generated with the order, please account for an extra 100ms-5000ms after order creation for the label to be generated. Before that, this link may return a 404 error.\n",
"readOnly": true
},
"zplShippingLabelLink": {
"type": "string",
"description": "Link to zpl shipping label file. Note that while the label link is immediately generated with the order, please account for an extra 100ms-5000ms after order creation for the label to be generated. Before that, this link may return a 404 error.\n",
"readOnly": true
},
"lastEvent": {
"type": "string",
"description": "Latest state of the package",
"enum": [
"created",
"pending",
"notFound",
"pickedUpFromClient",
"droppedOffAtVeho",
"pickedUpFromVeho",
"delivered",
"returned",
"cancelled",
"misdelivered",
"discarded",
"returnedToClient",
"returnedToVeho",
"notReceivedFromClient",
"removedForRescue",
"removedForRollover",
"outForPickup",
"pickedUpFromConsumer",
"pickupSkipped",
"pickupFailed",
"pickupDroppedOffAtVeho",
"pickupTransferredToExternalCarrier"
],
"readOnly": true
},
"createdAt": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"readOnly": true
},
"trackingId": {
"type": "string",
"description": "A unique 14-character string designed to be visually unambiguous that clients and recipients can use to track package status.",
"readOnly": true
},
"eventLog": {
"type": "array",
"readOnly": true,
"items": {
"$ref": "#/$defs/Event"
}
},
"externalCarrier": {
"type": "object",
"description": "External Carrier\n",
"properties": {
"name": {
"type": "string",
"description": "External Carrier Name\n",
"readOnly": true
},
"trackingId": {
"type": "string",
"description": "External Carrier Tracking ID\n",
"readOnly": true
}
}
},
"externalShippingLabelLink": {
"type": "string",
"description": "Link to shipping label file provided by the client\n"
},
"externalId": {
"type": "string",
"description": "Any ID you want to associate with this package. Note that you should associate an Order ID with the Order object."
},
"length": {
"type": "integer",
"maximum": 48,
"description": "Length (inches) of the package"
},
"width": {
"type": "integer",
"maximum": 48,
"description": "Width (inches) of the package"
},
"height": {
"type": "integer",
"maximum": 48,
"description": "Height (inches) of the package"
},
"weight": {
"type": "integer",
"maximum": 50,
"description": "Weight (pounds) of the package"
},
"declaredValue": {
"type": "number",
"description": "Declared value of package, in USD pennies (5000 is $50 USD)."
},
"description": {
"type": "string",
"description": "Description of the package. Note that this description will appear on the label."
},
"signatureRequired": {
"description": "Specify whether recipient has to sign for this package.",
"type": "boolean",
"default": false,
"deprecated": true
},
"barCode": {
"type": "string",
"description": "The unique alphanumeric barcode printed on the package label. Must be between 14 and 20 characters. For packages handled by a Veho delivery partner, the submitted barcode will be ignored, and trackingId will be used as the barcode instead.",
"minLength": 7,
"maxLength": 20
},
"consumerId": {
"type": "string",
"description": "ID of consumer",
"deprecated": true
},
"specialHandling": {
"$ref": "#/$defs/SpecialHandling"
},
"attendedDelivery": {
"$ref": "#/$defs/AttendedDelivery"
},
"scheduledServiceDate": {
"type": "string",
"description": "Scheduled service date for the package",
"format": "date-time",
"readOnly": true
},
"actualServiceDate": {
"type": "string",
"description": "Date of actual service for the package",
"format": "date-time",
"readOnly": true
},
"quoteId": {
"type": "string",
"description": "The ID of the quote that was used to rate this package. Represented as a UUID.",
"format": "uuid",
"readOnly": true
},
"dispatchDate": {
"type": "string",
"format": "date",
"description": "A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package is expected to depart your facility. The date must be today or later. It cannot be in the past. If the dispatch date is not included, the current timestamp will be used.",
"readOnly": true
},
"shipDate": {
"type": "string",
"format": "date",
"description": "A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package is expected to be tendered. The date must be today or greater. It cannot be in the past."
},
"tenderFacilityId": {
"$ref": "#/$defs/FacilityId",
"readOnly": true
},
"slaServiceDate": {
"type": "string",
"format": "date",
"description": "The date by which the package is expected to be delivered. Replacement for slaDeliveryDate",
"readOnly": true
},
"perishable": {
"type": "boolean",
"description": "Indicates whether the package is perishable",
"readOnly": true
},
"humanReadableOperation": {
"type": "string",
"description": "The lastEvent on the package as a more detailed string. For example, \"Package out for delivery\" instead of \"pickedUpFromVeho\"",
"readOnly": true
}
}
},
"QuotedPackageResponse": {
"allOf": [
{
"$ref": "#/$defs/PackageResponse"
},
{
"type": "object",
"properties": {
"quote": {
"$ref": "#/$defs/SimpleQuoteItem"
}
}
}
]
},
"GetPackageByIdResponse": {
"allOf": [
{
"$ref": "#/$defs/PackageResponse"
},
{
"type": "object",
"properties": {
"deliveryImage": {
"type": "string",
"description": "URL to access the delivery image for package, on request, if available. This field can be requested by setting the \"includeDeliveryImage\" query parameter to true"
}
}
}
]
},
"Event": {
"type": "object",
"description": "The eventLog object represents an event in the lifecycle of the package:",
"properties": {
"eventType": {
"type": "string",
"description": "enum representing the event that occurred",
"enum": [
"created",
"pending",
"notFound",
"pickedUpFromClient",
"droppedOffAtVeho",
"pickedUpFromVeho",
"delivered",
"returned",
"cancelled",
"misdelivered",
"discarded",
"PackageArrivedAtFacility",
"PackageDepartedFromFacility",
"PackageHadDeliveryIssue",
"PackageLoadedOntoFirstMileTransit",
"pendingReturnToClient",
"returnedToClient",
"returnedToVeho",
"notReceivedFromClient",
"removedForRescue",
"removedForRollover",
"outForPickup",
"pickedUpFromConsumer",
"pickupSkipped",
"pickupFailed",
"pickupDroppedOffAtVeho",
"pickupTransferredToExternalCarrier"
],
"readOnly": true
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "time at which the event occurred",
"readOnly": true
},
"message": {
"type": "string",
"description": "message associated with the event",
"readOnly": true
},
"city": {
"type": "string",
"description": "The city of either the facility or destination where the event occurred. Available for delivered, droppedOffAtVeho, pickedUpFromVeho, and arrivedAtFacility events.",
"readOnly": true
},
"state": {
"type": "string",
"description": "The state of either the facility or destination where the event occurred. Available for delivered, droppedOffAtVeho, pickedUpFromVeho, and arrivedAtFacility events.",
"readOnly": true
},
"meta": {
"type": "object",
"description": "freeform JSON metadata associated with the event. The fields presented in this object are subject to change",
"readOnly": true
}
},
"readOnly": true
},
"OrderEvent": {
"type": "object",
"description": "The eventLog object represents an event in the lifecycle of the order",
"properties": {
"eventType": {
"type": "string",
"enum": [
"created",
"cancelled"
],
"description": "enum representing the event that occurred",
"readOnly": true
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "time at which the event occurred",
"readOnly": true
}
}
},
"MerchantRequest": {
"type": "object",
"x-examples": {
"example-1": {
"name": "Flintstone's Wheels"
}
},
"description": "Merchants. For 3PL clients who ship on behalf of merchants",
"title": "Merchant Request",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Merchant Name"
}
}
},
"MerchantResponse": {
"type": "object",
"x-examples": {
"example-1": {
"_id": "TuN75hYYBicRsaLWo",
"name": "Flintstone's Wheels"
}
},
"description": "Merchants. For 3PL clients who ship on behalf of merchants",
"title": "Merchant Response",
"properties": {
"_id": {
"type": "string",
"description": "Merchant ID"
},
"name": {
"type": "string",
"description": "Merchant Name"
},
"clientId": {
"type": "string",
"description": "Client ID",
"readOnly": true
}
}
},
"OrderAddress": {
"title": "Order Address",
"type": "object",
"description": "Delivery address",
"required": [
"zipCode",
"street",
"city",
"state"
],
"properties": {
"street": {
"type": "string",
"description": "Street address"
},
"city": {
"type": "string",
"description": "City"
},
"state": {
"type": "string",
"description": "State. 2 letter postal code or full state name",
"example": "CO"
},
"zipCode": {
"type": "string",
"description": "ZIP code",
"pattern": "^\\d{5}(-?\\d{4})?$"
},
"apartment": {
"type": "string",
"description": "Apartment number, suite number or any info on the second line of an address"
},
"country": {
"type": "string",
"description": "2 letter ISO country code"
}
}
},
"FromAddress": {
"title": "From Address",
"type": "object",
"description": "Address where this order is originating from",
"required": [
"addressLine1",
"city",
"state",
"zipCode"
],
"properties": {
"addressLine1": {
"type": "string",
"description": "Address line 1"
},
"addressLine2": {
"type": "string",
"description": "Address line 2"
},
"city": {
"type": "string",
"description": "City"
},
"state": {
"type": "string",
"description": "State. 2 letter postal code or full state name",
"example": "CO"
},
"zipCode": {
"type": "string",
"description": "ZIP code",
"pattern": "^\\d{5}(-?\\d{4})?$"
},
"country": {
"type": "string",
"description": "2 letter ISO country code"
}
}
},
"WebhookConfigurationResponse": {
"description": "Webhook Configurations define what endpoint Veho will send webhook events to, and which package milestone events it will send them for.",
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "abcd1234"
},
"createdAt": {
"type": "string",
"format": "date-time",
"example": "2021-01-30T08:30:00Z"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"example": "2021-01-30T08:30:00Z"
},
"endpoint": {
"description": "The URL that Veho will send webhook events to for this configuration",
"type": "string",
"format": "url",
"example": "https://www.example.com"
},
"eventType": {
"$ref": "#/$defs/EventType"
},
"serviceType": {
"$ref": "#/$defs/ServiceType"
},
"customHeaders": {
"description": "Headers needed to call the endpoint correctly, ex. an API key",
"type": "object",
"additionalProperties": {
"type": "string"
},
"example": {
"KEY-1": "SOMETHING-1",
"KEY-2": "SOMETHING-2"
}
}
}
},
"WebhookConfigurationListResponse": {
"type": "object",
"properties": {
"configurations": {
"type": "array",
"items": {
"$ref": "#/$defs/WebhookConfigurationResponse"
}
}
}
},
"WebhookConfigurationRequest": {
"description": "Defines a webhook configuration",
"type": "object",
"properties": {
"endpoint": {
"type": "string",
"description": "The endpoint that webhook events will be sent to for this configuration",
"format": "url",
"example": "https://www.example.com"
},
"eventType": {
"$ref": "#/$defs/EventType"
},
"serviceType": {
"$ref": "#/$defs/ServiceType"
},
"customHeaders": {
"description": "Headers needed to call the endpoint correctly, ex. an API key",
"type": "object",
"additionalProperties": {
"type": "string"
},
"example": {
"KEY-1": "SOMETHING-1",
"KEY-2": "SOMETHING-2"
}
}
},
"required": [
"endpoint",
"serviceType",
"eventType"
]
},
"WebhookEvent": {
"description": "A webhook event represents a single event that Veho attempted to send to a webhook endpoint. Each webhook event contains information about the attempted send, as well as a `payload` field to represent the webhook event object that was sent.",
"type": "object",
"properties": {
"id": {
"description": "ID of the event that occured",
"type": "string"
},
"createdAt": {
"description": "time this webhook event initially tried to send",
"type": "string",
"format": "date-time"
},
"updatedAt": {
"description": "time of last update to this webhook event",
"type": "string",
"format": "date-time"
},
"webhookConfigurationId": {
"description": "ID of the webhook configuration that triggered this send",
"type": "string"
},
"packageId": {
"description": "package ID associated with this event",
"type": "string"
},
"orderId": {
"description": "order ID associated with this event",
"type": "string"
},
"serviceType": {
"$ref": "#/$defs/ServiceType"
},
"eventType": {
"$ref": "#/$defs/EventType"
},
"endpoint": {
"description": "url this event attempted to send to",
"type": "string",
"format": "url"
},
"occurredAt": {
"description": "time the originating event happened",
"type": "string",
"format": "date-time"
},
"payload": {
"description": "the webhook event object sent",
"type": "object",
"properties": {
"_id": {
"type": "string"
}
},
"additionalProperties": true
},
"trackingId": {
"description": "external tracking id supplied to Veho to track this package",
"type": "string"
},
"barcode": {
"description": "the custom or generated barcode value for the package",
"type": "string"
},
"result": {
"description": "the final result of this webhook",
"type": "string",
"enum": [
"success",
"failure"
]
}
}
},
"ServiceType": {
"description": "Type of service associated, delivery or pickup",
"type": "string",
"enum": [
"delivery",
"pickup"
]
},
"EventType": {
"description": "Type of package milestone event associated with the webhook",
"type": "string",
"enum": [
"package.created",
"package.pickedUpFromClient",
"package.droppedOffAtVeho",
"package.pickedUpFromVeho",
"package.delivered",
"package.cancelled",
"package.misdelivered",
"package.discarded",
"package.notReceivedFromClient",
"package.pendingReturnToClient",
"package.returnedToClient",
"package.rescheduled",
"package.delayed",
"package.arrivedAtFacility",
"package.departedFromFacility",
"package.hadDeliveryIssue",
"package.outForPickup",
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/veho-tech/refs/heads/main/json-schema/veho-tech-webhook-event.json