Event Types

This parameter specifies during which event the relevant webhook request will be triggered and transmitted.

  • Enum Class Name: WebhookSubscribedEvent
  • Parameter Name: subscribedEvent
Value Description
consignment.size.updated Triggered when consignment size information is updated
consignment.status.updated Triggered when consignment status is updated
consignment.label.created Triggered when a new label is added to the consignment
package.status.updated Triggered when a package's status or status message changes
package.size.updated Triggered when a package's weight, desi or dimensions change

These values can be used both when creating webhooks and when responding. You can integrate them into your own system to enhance integration and comprehensibility.


Webhook Payload Examples

Below are example payloads that the webhook will send to your system for each event type.

These examples show the default JSON payload. Date values use RFC 3339 and include a timezone offset. All values, including the dates and offsets, are sample data.

consignment.status.updated

Triggered when consignment status is updated. triggerEvent contains the event that triggered the webhook (id, status, statusMessage, statusUpdatedAt, location, originalStatus, packageId). When that event belongs to a package, triggerEvent.packageId identifies the package; otherwise it is null. triggerEvent is not included when the webhook is resent without a specific event. Package events keep triggering this event; package.status.updated is sent in addition.

{
  "headers": {
    "Authorization": "__YOUR_AUTH_KEY__",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "consignment.status.updated",
    "data": {
      "consignmentId": 3396107,
      "consignmentUuid": "8378bbe5-b66c-4048-bf9d-b4cd52469bec",
      "barcode": "C2H04729482615",
      "referenceNo": "KPTT1661447TDBZP",
      "location": null,
      "status": 1,
      "statusMessage": "Consignment sent to provider",
      "statusUpdatedAt": "2025-10-31T13:09:16+03:00",
      "lastTrackingCode": "KPTT1661447TDBZP",
      "createdAt": "2025-10-31T13:09:16+03:00",
      "events": [
        {
          "status": 1,
          "statusMessage": "Consignment sent to provider",
          "statusUpdatedAt": "2025-10-31T13:09:16+03:00",
          "location": null
        }
      ],
      "labels": [],
      "triggerEvent": {
        "id": 18734521,
        "status": 1,
        "statusMessage": "Consignment sent to provider",
        "statusUpdatedAt": "2025-10-31T13:09:16+03:00",
        "location": null,
        "originalStatus": null,
        "packageId": null
      }
    }
  }
}

consignment.label.created

Triggered when a new label is added to the consignment. It reports the linked package information and the previous label, if one was replaced.

Field Type Meaning
package.packageId integer or null ID of the package linked to the label. Sent as null when no ID is available.
package.weight, package.length, package.width, package.height, package.desi number Stored weight, dimensions and desi of the package linked to the label.
replacedLabel object or null trackingCode and trackingType of the previous label that was replaced. Sent as null when no replacement information is available. The previous code and type can also be null.
trackingType integer or null 1: barcode/tracking code; 2: reference number; null: type is not set.
createdAt, updatedAt datetime string Creation and update times of the label.

The package object is always sent. When no package is linked to the label, packageId is null and measurements are 0. Measurements that are not set are also sent as 0. Measurements are the stored package values when the event is created.

replacedLabel: null does not by itself mean that a new package was created. package.packageId identifies the linked package.

Example: label for an additional package

In this example, package 41 is new to the receiver and no label was replaced.

{
  "headers": {
    "Authorization": "__YOUR_AUTH_KEY__",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "consignment.label.created",
    "data": {
      "consignmentId": 3393215,
      "consignmentUuid": "8f5ad2c9-3a2a-4e7d-a858-d1b9e17fd15d",
      "barcode": "2791937361446",
      "referenceNo": "EPTT898824753",
      "trackingCode": "2791937361446",
      "trackingType": 2,
      "provider": "Ptt",
      "replacedLabel": null,
      "package": {
        "packageId": 41,
        "weight": 1.4,
        "length": 0,
        "width": 0,
        "height": 0,
        "desi": 3
      },
      "createdAt": "2026-10-12T10:00:00+03:00",
      "updatedAt": "2026-10-12T10:00:00+03:00",
      "base64label": "__BASE64_DATA__"
    }
  }
}

Example: barcode replaces a reference label

The same package 41 now has a tracking barcode (trackingType: 1) in place of its reference label (trackingType: 2). The previous label information is sent in replacedLabel.

{
  "headers": {
    "Authorization": "__YOUR_AUTH_KEY__",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "consignment.label.created",
    "data": {
      "consignmentId": 3393215,
      "consignmentUuid": "8f5ad2c9-3a2a-4e7d-a858-d1b9e17fd15d",
      "barcode": "KP06696002342",
      "referenceNo": "EPTT898824753",
      "trackingCode": "KP06696002342",
      "trackingType": 1,
      "provider": "Ptt",
      "replacedLabel": {
        "trackingCode": "2791937361446",
        "trackingType": 2
      },
      "package": {
        "packageId": 41,
        "weight": 1.4,
        "length": 0,
        "width": 0,
        "height": 0,
        "desi": 3
      },
      "createdAt": "2026-10-12T11:00:00+03:00",
      "updatedAt": "2026-10-12T11:00:00+03:00",
      "base64label": "__BASE64_DATA__"
    }
  }
}

The headers and body keys in these examples show the HTTP request parts. They are not an additional JSON wrapper in the request body.

consignment.size.updated

Triggered when consignment size information is updated. The weight and desi fields contain consignment totals, including package quantities. Adding a package also triggers the event if it changes these totals. For multi-package consignments, weight and desi are the sum of the counted packages: cancelled packages are not counted, and after at least one package is accepted, packages that are not accepted are not counted either. The measurement of a single package is reported with package.size.updated.

{
  "headers": {
    "Authorization": "__YOUR_AUTH_KEY__",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "consignment.size.updated",
    "data": {
      "consignmentId": 3393215,
      "consignmentUuid": "8f5ad2c9-3a2a-4e7d-a858-d1b9e17fd15d",
      "barcode": "C2H11294525102",
      "referenceNo": "EPTT898824753",
      "weight": 0.5,
      "length": 0,
      "width": 0,
      "height": 0,
      "desi": 1,
      "lastTrackingCode": "KP05917924760",
      "createdAt": "2025-10-31T13:09:16+03:00",
      "updatedAt": "2025-10-31T13:09:16+03:00",
      "events": [
        {
          "status": 1,
          "statusMessage": "Consignment sent to provider",
          "statusUpdatedAt": "2025-10-31T13:09:16+03:00",
          "location": null
        },
        {
          "status": 2,
          "statusMessage": "Kabul Edildi",
          "statusUpdatedAt": "2025-10-31T13:09:16+03:00",
          "location": "SAKARYA PKİM/SAKARYA PKİM"
        }
      ],
      "statusMessage": "Kabul Edildi",
      "status": 2
    }
  }
}

package.status.updated

Triggered per package when that package's status or status message changes. A consignment with several packages sends one webhook for each package that changes.

  • The webhook is sent only when the package status or status message actually changes. A repeated carrier event with the same status does not send it again.
  • A package added by the carrier (for example, when a new tracking barcode arrives for the consignment) does not send a webhook when it is created. It sends its first package.status.updated when it receives its first status.
  • It is not sent for the TRACKING_TIMEOUT (28) status.
  • The consignment-level consignment.status.updated event is still sent as before. To receive both levels, create a webhook for each event.
Field Type Meaning
consignmentId, consignmentUuid, barcode, referenceNo integer, string Consignment the package belongs to.
packageId integer ID of the package.
packageReferenceNo, providerPackageId, specificProviderBarcode string or null Package reference number, the package ID assigned by the carrier and the package-specific carrier barcode. null when not available.
providerPackageSequence integer or null Sequence number of the package at the carrier. null when not available.
status, statusMessage integer, string Current status of the package. Status values are listed on the Consignment Statuses page.
statusUpdatedAt, location datetime string, string or null Date and location of the latest event of the package. If the package has no event yet, statusUpdatedAt is the time the package was last updated and location is null.
weight, width, length, height, desi number or null Stored weight (kg), dimensions (cm) and desi of the package.
events array Events of this package only, oldest first.
labels array Labels of this package only (trackingCode, trackingType, provider, providerId).
{
  "headers": {
    "Authorization": "__YOUR_AUTH_KEY__",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "package.status.updated",
    "data": {
      "consignmentId": 3393215,
      "consignmentUuid": "8f5ad2c9-3a2a-4e7d-a858-d1b9e17fd15d",
      "barcode": "C2H11294525102",
      "referenceNo": "EPTT898824753",
      "packageId": 42,
      "packageReferenceNo": null,
      "providerPackageId": null,
      "providerPackageSequence": null,
      "specificProviderBarcode": null,
      "status": 3,
      "statusMessage": "Sevk Edildi",
      "statusUpdatedAt": "2026-10-13T16:19:12+03:00",
      "location": "Istanbul/Kadikoy",
      "weight": 1.2,
      "width": 0,
      "length": 0,
      "height": 0,
      "desi": 2,
      "events": [
        {
          "status": 2,
          "statusMessage": "Kabul Edildi",
          "statusUpdatedAt": "2026-10-13T16:18:20+03:00",
          "location": "Istanbul/Kadikoy"
        },
        {
          "status": 3,
          "statusMessage": "Sevk Edildi",
          "statusUpdatedAt": "2026-10-13T16:19:12+03:00",
          "location": "Istanbul/Kadikoy"
        }
      ],
      "labels": [
        {
          "trackingCode": "KP17918974919TR",
          "trackingType": 1,
          "provider": "Ptt",
          "providerId": 1
        }
      ]
    }
  }
}

package.size.updated

Triggered when the weight, desi, width, length or height of a package changes. The payload has the same fields as package.status.updated and carries the new measurements.

  • Only real changes send the webhook. Formatting-only differences (for example 9.0 and 9.00) do not.
  • Creating a package does not send this event. The measurements of a new package are included in its first package.status.updated.
  • When the change also changes the consignment totals, consignment.size.updated is sent with the new totals. This does not apply to draft consignments: when the packages of a draft are updated, package.size.updated can be sent, but consignment.size.updated is not.
  • If the package has not received a status yet, status and statusMessage can be null.
{
  "headers": {
    "Authorization": "__YOUR_AUTH_KEY__",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "package.size.updated",
    "data": {
      "consignmentId": 3393215,
      "consignmentUuid": "8f5ad2c9-3a2a-4e7d-a858-d1b9e17fd15d",
      "barcode": "C2H11294525102",
      "referenceNo": "EPTT898824753",
      "packageId": 41,
      "packageReferenceNo": null,
      "providerPackageId": null,
      "providerPackageSequence": null,
      "specificProviderBarcode": null,
      "status": 2,
      "statusMessage": "Kabul Edildi",
      "statusUpdatedAt": "2026-10-13T16:18:04+03:00",
      "location": "Istanbul/Kadikoy",
      "weight": 2.5,
      "width": 10,
      "length": 15,
      "height": 15,
      "desi": 3,
      "events": [
        {
          "status": 2,
          "statusMessage": "Kabul Edildi",
          "statusUpdatedAt": "2026-10-13T16:18:04+03:00",
          "location": "Istanbul/Kadikoy"
        }
      ],
      "labels": [
        {
          "trackingCode": "8200000000211",
          "trackingType": 1,
          "provider": "Ptt",
          "providerId": 1
        }
      ]
    }
  }
}