> For the complete documentation index, see [llms.txt](https://docs.partssource.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.partssource.com/webhooks/overview.md).

# Overview

How PartsSource webhooks work — delivery, verification, testing, and troubleshooting

Webhooks deliver real-time HTTP POST notifications to your server when events occur in the PartsSource platform. Instead of polling the API, your system receives events as they happen.

This section covers everything that works the same way for every webhook integration — how deliveries are signed and verified, how to build a reliable handler, how to test it, and what to do when deliveries fail. The events themselves differ by audience:

* **Customer integrations** — see [Customer Webhooks](https://docs.partssource.com/webhooks-customer) for the event catalog and payload schemas
* **Supplier integrations** — see [Supplier Webhooks](https://docs.partssource.com/webhooks-supplier) (coming soon)

***

## Getting started

Webhook configuration is managed by the PartsSource integration team: you provide an HTTPS endpoint URL (TLS required) and choose which events you want; you receive a **signing secret** to verify deliveries. Then build your handler with the [Quickstart](/webhooks/quickstart.md).

***

## Guides

| Guide                                                     | What it covers                                                                              |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [Quickstart](/webhooks/quickstart.md)                     | From nothing to a verified, deduplicated webhook handler in five steps                      |
| [Delivery & Retries](/webhooks/delivery-and-retries.md)   | Delivery headers, semantics, limits, and the deliveries inspection API                      |
| [Verifying Deliveries](/webhooks/verifying-deliveries.md) | The normative signature specification and reference implementations in Node, C#, and Python |
| [Testing Your Integration](/webhooks/testing.md)          | Prove your handler end to end before real traffic exists                                    |
| [Troubleshooting](/webhooks/troubleshooting.md)           | Symptoms, causes, and fixes when deliveries misbehave                                       |

***

## The short version

Every delivery is an HTTPS POST carrying a JSON envelope, an `X-PS-Signature` header (HMAC-SHA256 over `<timestamp>.<raw body>`, hex-encoded), and an `X-PS-Timestamp` header. Verify the signature against the raw bytes, reject stale timestamps, acknowledge with 2xx within 10 seconds, process asynchronously, and deduplicate — delivery is at-least-once and ordering is not guaranteed.

The full delivery contract — headers, semantics, limits, and the deliveries inspection API — is in [Delivery & Retries](/webhooks/delivery-and-retries.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.partssource.com/webhooks/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
