# Directory listing synced (success/incomplete)

**Event:** `listing.submission`

**Event name:** `listing.submission`

Sent when Synup finishes attempting to sync a business listing to a directory (Google, Facebook, etc.), triggered by profile updates or new directory submissions. Delivered to your Webhooks URL (Listings webhook). One delivery per status change — a move from incomplete to success sends two separate calls. Note the compact envelope: there is no top-level timestamp or account_id, and the location is identified by the Base64 id inside data.

Source: https://developer.synup.com/webhooks/listing-submission

## Header parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `X-Synup-Signature` | string | required | sha256=base64(HMAC-SHA256(signing_secret, raw_request_body)). Present when the account has generated a signing secret; verify before processing. |

## Request body

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `event` | string | optional | Always "listing.submission". |
| `status` | string | optional | "success" (listing is live on the directory) or "incomplete" (could not be completed). |
| `live_link` | string | optional | Public URL of the live listing. Present only when status is "success". |
| `error_message` | string | optional | Why the submission could not be completed. Present only when status is "incomplete". |
| `data` | object | optional |  |
| `data.business_id` | integer | optional | Synup's internal numeric ID for the location. |
| `data.v4_business_id` | string | optional | Base64-encoded location identifier for the v4 API. Same value as data.location_id. |
| `data.location_id` | string | optional | Base64-encoded location identifier. Same value as data.v4_business_id. |
| `data.site` | object | optional | The directory the listing was synced to. |
| `data.site.id` | integer | optional | Synup's internal ID for the directory. |
| `data.site.name` | string | optional | Directory name (e.g. "Google", "Yelp", "Infobel"). |
| `data.site.url` | string | optional | Root domain of the directory (e.g. "infobel.com"). |

## Responses

| Status | Description |
| --- | --- |
| `200` | Acknowledge with any 2xx. A non-2xx (or timeout) is recorded as a failed delivery; failures are logged but not automatically retried at this time. |
