> For the complete documentation index, see [llms.txt](https://developers.share.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.share.inc/api-reference/integrations.md).

# Integrations

Inbound webhook receiver for external BSS/OSS systems (Splynx-native traffic goes through the integrations service). Authenticated with `x-webhook-signature` (HMAC-SHA256 over the raw body) — `X-Access-Id` / `X-Access-Secret` are an optional fallback when no signature secret is configured. The Splynx-native master endpoint is not exposed to partners.

## Receive an inbound webhook

> Generic inbound-webhook receiver. The integration is identified by \`:integrationId\` (the \`ProviderIntegration.id\` returned when the integration was set up) and authenticated via \`x-webhook-signature\` — an HMAC-SHA256 of the raw request body using the provider-integration secret.\
> \
> When no signature secret is configured for the integration, the endpoint accepts the standard \`X-Access-Id\` / \`X-Access-Secret\` headers as a fallback. Requests without either credential are accepted and routed by payload (\`partner\_id\`), but failures are logged unattributed — partners should prefer the signed path. The request is acknowledged synchronously and queued for asynchronous processing.\
> \
> The Splynx-native master endpoint at \`/v1/integrations/splynx/webhooks\` is intentionally not exposed in this reference; it is only callable by Splynx tenants configured through Share. See \`docs/integrations-architecture.md\` for the inbound-routing flow.

```json
{"openapi":"3.0.0","info":{"title":"Share API","version":"1.0"},"tags":[{"description":"Inbound webhook receiver for external BSS/OSS systems (Splynx-native traffic goes through the integrations service). Authenticated with `x-webhook-signature` (HMAC-SHA256 over the raw body) — `X-Access-Id` / `X-Access-Secret` are an optional fallback when no signature secret is configured. The Splynx-native master endpoint is not exposed to partners.","name":"Integrations"}],"paths":{"/v1/integrations/{integrationId}/webhooks":{"post":{"description":"Generic inbound-webhook receiver. The integration is identified by `:integrationId` (the `ProviderIntegration.id` returned when the integration was set up) and authenticated via `x-webhook-signature` — an HMAC-SHA256 of the raw request body using the provider-integration secret.\n\nWhen no signature secret is configured for the integration, the endpoint accepts the standard `X-Access-Id` / `X-Access-Secret` headers as a fallback. Requests without either credential are accepted and routed by payload (`partner_id`), but failures are logged unattributed — partners should prefer the signed path. The request is acknowledged synchronously and queued for asynchronous processing.\n\nThe Splynx-native master endpoint at `/v1/integrations/splynx/webhooks` is intentionally not exposed in this reference; it is only callable by Splynx tenants configured through Share. See `docs/integrations-architecture.md` for the inbound-routing flow.","operationId":"IntegrationsController_receiveWebhook_v1","parameters":[{"description":"Provider integration identifier (`ProviderIntegration.id`).","in":"path","name":"integrationId","required":true,"schema":{"type":"string"}},{"description":"HMAC-SHA256 signature over the raw request body, hex-encoded. Computed with the provider-integration secret. Required when the integration is signature-protected (preferred path); falls back to `X-Access-Id` + `X-Access-Secret` only when no signature secret is configured for the integration.\n\nExample: `7f2a4c0e9b6d1e8a3f5c2d0b9a7e6f5c4d3b2a1908f7e6d5c4b3a29180716253`.","in":"header","name":"x-webhook-signature","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundWebhookRequestDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ApiResponseDto"},{"properties":{"data":{"$ref":"#/components/schemas/Object"},"success":{"type":"boolean"}}}]}}},"description":"Webhook accepted and queued for processing."}},"summary":"Receive an inbound webhook","tags":["Integrations"]}}},"components":{"schemas":{"InboundWebhookRequestDto":{"properties":{"data":{"description":"Event payload from the external system","type":"object"},"event":{"description":"Adapter-specific event type (e.g., Splynx event name)","type":"string"}},"required":["event","data"],"type":"object"},"ApiResponseDto":{"properties":{},"type":"object"},"Object":{"properties":{},"type":"object"}}}}
```
