Integration Disabled
WEBHOOK: POSThttps://<YOUR_WEBHOOK_URI> event_type: store.deprovisioned
This webhook is sent to notify your app that it has lost access to this store; its APIs; and its webhooks. This could be the result of action by the merchant; Uber support staff; in response to calling PATCH /pos_data
with integration_enabled
set to false
; or by calling DELETE /pos_data
. In all but the latter case, your app will continue to have access to the GET /pos_data
endpoint should it need to fetch historic configuration data.
You may receive a subsequent store.provisioned
webhook if your app is re-activated to this store.
Your service should return an HTTP 200
response code with an empty response body to acknowledge receipt of the webhook event. If Uber does not receive a 200 acknowledgement response, the webhook event will be resent based on an exponential backoff algorithm (i.e. starting at 1 second after the initial attempt, then 2 seconds, then 4 seconds etc.) until 7 total events were sent without a response.
¶ Webhook Headers
Uber will include security headers for all requests made to your webhook URL.
Header | Description |
---|---|
X-Environment |
Indicates if this request is coming from the production or sandbox API. |
X-Uber-Signature |
SHA256 hash of the request body, using the client secret as the key. |
¶ Webhook Security
Webhook messages are signed so that your app can verify that the sender is Uber. Webhooks requests contain an X-Uber-Signature
header. The value of this field is a lowercased hexadecimal HMAC signature of the webhook HTTP request body, using the client secret as a key and SHA256 as the hash function.
Python Example
digester = hmac.new(client_secret, webhook_body, hashlib.sha256)
return digester.hexdigest()
¶ Webhook Event Structure
Name | Type | Description |
---|---|---|
event_type |
string (enum) |
The type of the event, e.g. store.deprovisioned . Always check this field as new event types may be added in the future without notice. |
store_id |
string |
The ID that Uber uses to uniquely identify a store. |
partner_store_id |
string (optional) |
The ID that the merchant configured to represent its store. This is not the integrator_store_id which should be retrieved from GET /pos_data . |
resource_href |
string |
Contains the path to the GET /pos_data endpoint to retrieve the current integration details. |
webhook_meta.client_id |
string |
Application or client ID that this webhook notification was generated for. This can be used to distinguish audience when multiple apps are registered to the same to webhook URL. |
webhook_meta.webhook_config_id |
string |
Deprecated - do not use. |
webhook_meta.webhook_msg_timestamp |
integer |
Unix timestamp of when the event occurred. |
webhook_meta.webhook_msg_uuid |
string |
Unique identifier of the webhook event (for trackean |
¶ Example Webhook
{
"event_type": "store.deprovisioned",
"partner_store_id": "123456",
"resource_href": "https://api.uber.com/v1/eats/stores/168c0172-96fa-4de4-8013-48eb84859085/pos_data",
"store_id": "168c0172-96fa-4de4-8013-58eb84859085",
"webhook_meta": {
"client_id": "_ZIpO1fe77fAA-ig_pdeRtBosx1DZ",
"webhook_config_id": "eats-pos-provision-platform.provisioning-update",
"webhook_msg_timestamp": 1624978285,
"webhook_msg_uuid": "f6f528ae-5ee7-4811-a65b-bb1b11c31db6"
}
}