@ingenx-io/valets-schema-mcp-server 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/docs/collections/firestore-paths.md +20 -0
- package/data/docs/enums/app-status.md +1 -1
- package/data/docs/enums/attention-status.md +1 -1
- package/data/docs/enums/booking-status.md +1 -1
- package/data/docs/enums/contract-status.md +1 -1
- package/data/docs/enums/customer-payment-status.md +1 -1
- package/data/docs/enums/customer-payment-target-type.md +1 -1
- package/data/docs/enums/delivery-type.md +1 -1
- package/data/docs/enums/deployment-link-type.md +1 -1
- package/data/docs/enums/event-status.md +1 -1
- package/data/docs/enums/expense-payment-status.md +24 -0
- package/data/docs/enums/fulfillment-status.md +2 -2
- package/data/docs/enums/loyalty-transaction-type.md +2 -2
- package/data/docs/enums/milestone-status.md +2 -2
- package/data/docs/enums/notification-channel.md +2 -2
- package/data/docs/enums/notification-entity-type.md +2 -2
- package/data/docs/enums/notification-status.md +2 -2
- package/data/docs/enums/order-status.md +2 -2
- package/data/docs/enums/outbound-message-format.md +2 -2
- package/data/docs/enums/outbound-message-purpose.md +2 -2
- package/data/docs/enums/outbound-message-status.md +2 -2
- package/data/docs/enums/payment-method.md +4 -3
- package/data/docs/enums/payment-proof-status.md +2 -2
- package/data/docs/enums/payment-status.md +2 -2
- package/data/docs/enums/pending-issue.md +2 -2
- package/data/docs/enums/return-status.md +2 -2
- package/data/docs/enums/session-status.md +2 -2
- package/data/docs/enums/site-status.md +2 -2
- package/data/docs/enums/stocktake-frequency.md +2 -2
- package/data/docs/enums/stocktake-item-status.md +2 -2
- package/data/docs/enums/stocktake-status.md +2 -2
- package/data/docs/enums/ticket-status.md +2 -2
- package/data/docs/enums/waba-label.md +2 -2
- package/data/docs/enums/whatsapp-button-sub-type.md +2 -2
- package/data/docs/enums/whatsapp-template-component.md +2 -2
- package/data/docs/enums/whatsapp-template-status.md +2 -2
- package/data/docs/index.md +8 -5
- package/data/docs/models/allowed-user.md +1 -1
- package/data/docs/models/analytics-backfill.md +1 -1
- package/data/docs/models/analytics-daily.md +1 -1
- package/data/docs/models/analytics-event.md +1 -1
- package/data/docs/models/analytics-hourly.md +1 -1
- package/data/docs/models/app-payment.md +1 -1
- package/data/docs/models/app.md +1 -1
- package/data/docs/models/booking-version.md +1 -1
- package/data/docs/models/booking.md +1 -1
- package/data/docs/models/contract.md +1 -1
- package/data/docs/models/customer-payment-allocation.md +1 -1
- package/data/docs/models/customer-payment.md +22 -21
- package/data/docs/models/customer.md +1 -1
- package/data/docs/models/event.md +1 -1
- package/data/docs/models/expense.md +434 -0
- package/data/docs/models/loyalty-config.md +2 -2
- package/data/docs/models/loyalty-reward.md +2 -2
- package/data/docs/models/loyalty-status.md +2 -2
- package/data/docs/models/loyalty-transaction.md +2 -2
- package/data/docs/models/magic-link-request.md +2 -2
- package/data/docs/models/metrics-current.md +22 -2
- package/data/docs/models/metrics-daily.md +92 -41
- package/data/docs/models/metrics-monthly.md +22 -2
- package/data/docs/models/notification-record.md +68 -35
- package/data/docs/models/order-item.md +2 -2
- package/data/docs/models/order.md +56 -55
- package/data/docs/models/outbound-payment-allocation.md +2 -2
- package/data/docs/models/outbound-payment.md +3 -2
- package/data/docs/models/payment-webhook-delivery.md +321 -0
- package/data/docs/models/payment-webhook-endpoint.md +2 -2
- package/data/docs/models/sale.md +2 -2
- package/data/docs/models/site-payment.md +2 -2
- package/data/docs/models/site.md +2 -2
- package/data/docs/models/stocktake-item.md +2 -2
- package/data/docs/models/stocktake.md +2 -2
- package/data/docs/models/ticket.md +2 -2
- package/data/docs/models/user.md +2 -2
- package/data/docs/models/whatsapp-inbound-message.md +42 -18
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
- package/data/docs/models/whatsapp-outbound-message.md +56 -32
- package/data/docs/models/whatsapp-template.md +2 -2
- package/data/static/llms.txt +110 -11
- package/data/static/openapi.yaml +444 -15
- package/data/static/schemas.json +394 -13
- package/package.json +1 -1
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "PaymentWebhookDelivery"
|
|
3
|
+
sidebar_label: "PaymentWebhookDelivery"
|
|
4
|
+
sidebar_position: 29
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PaymentWebhookDelivery
|
|
8
|
+
|
|
9
|
+
<details>
|
|
10
|
+
<summary>Example JSON</summary>
|
|
11
|
+
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"id": null,
|
|
15
|
+
"company": "company",
|
|
16
|
+
"provider": "pro_ref123",
|
|
17
|
+
"eventType": "eventType",
|
|
18
|
+
"status": "status",
|
|
19
|
+
"verified": "verified",
|
|
20
|
+
"endpointStatus": "endpointStatus",
|
|
21
|
+
"processed": true,
|
|
22
|
+
"reference": "reference",
|
|
23
|
+
"amount": 45000,
|
|
24
|
+
"currency": "XOF",
|
|
25
|
+
"payload": {},
|
|
26
|
+
"rawBody": "rawBody",
|
|
27
|
+
"headers": null,
|
|
28
|
+
"receivedAt": "receivedAt"
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
</details>
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
- [1. Property `id`](#id)
|
|
36
|
+
- [2. Property `company`](#company)
|
|
37
|
+
- [3. Property `provider`](#provider)
|
|
38
|
+
- [4. Property `eventType`](#eventType)
|
|
39
|
+
- [5. Property `status`](#status)
|
|
40
|
+
- [6. Property `verified`](#verified)
|
|
41
|
+
- [7. Property `endpointStatus`](#endpointStatus)
|
|
42
|
+
- [8. Property `processed`](#processed)
|
|
43
|
+
- [9. Property `reference`](#reference)
|
|
44
|
+
- [10. Property `amount`](#amount)
|
|
45
|
+
- [11. Property `currency`](#currency)
|
|
46
|
+
- [12. Property `payload`](#payload)
|
|
47
|
+
- [12.1. Property `additionalProperties`](#payload_additionalProperties)
|
|
48
|
+
- [13. Property `rawBody`](#rawBody)
|
|
49
|
+
- [14. Property `headers`](#headers)
|
|
50
|
+
- [14.1. Property `additionalProperties`](#headers_additionalProperties)
|
|
51
|
+
- [15. Property `receivedAt`](#receivedAt)
|
|
52
|
+
- [15.1. Property `_seconds`](#receivedAt__seconds)
|
|
53
|
+
- [15.2. Property `_nanoseconds`](#receivedAt__nanoseconds)
|
|
54
|
+
|
|
55
|
+
| | |
|
|
56
|
+
| ------------------------- | -------------------------------------- |
|
|
57
|
+
| **Type** | `object` |
|
|
58
|
+
| **Required** | No |
|
|
59
|
+
| **Additional properties** | Not allowed |
|
|
60
|
+
| **Defined in** | #/definitions/payment-webhook-delivery |
|
|
61
|
+
|
|
62
|
+
**Description:** PaymentWebhookDelivery (GH#42). Collection: payment_webhooks/\{deliveryId\} (top-level). One document per received provider callback. Contains raw payload + verification outcome. x-internal: written/read only by backend; dashboard reads via admin UI. PII in payload/rawBody — retention policy TBD.
|
|
63
|
+
|
|
64
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
65
|
+
| ------------------------------------ | ------- | -------------- | ---------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
66
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID, auto-generated. |
|
|
67
|
+
| + [company](#company ) | No | string | No | - | (Immutable) Company document ID (e.g. "gerko_studios"). Resolved from the matched endpoint at delivery time. |
|
|
68
|
+
| + [provider](#provider ) | No | string | No | - | Payment provider that sent this webhook (e.g. "jeko", "wave"). |
|
|
69
|
+
| + [eventType](#eventType ) | No | string | No | - | Provider-defined event type. Observed: "transaction.payment". Full set per provider TBD (#42). |
|
|
70
|
+
| + [status](#status ) | No | string | No | - | Processing outcome. Observed values: "success" \| "error". |
|
|
71
|
+
| + [verified](#verified ) | No | string | No | - | Signature verification result. Observed: "verified". Other values (e.g. "unverified", "error") may exist but are unconfirmed. |
|
|
72
|
+
| + [endpointStatus](#endpointStatus ) | No | string | No | - | Endpoint resolution result. Observed: "matched". Other values unconfirmed (#42). |
|
|
73
|
+
| + [processed](#processed ) | No | boolean | No | - | Whether this delivery has been reconciled to the AppPayment ledger. |
|
|
74
|
+
| + [reference](#reference ) | No | string | No | - | Provider transaction ID (= payload.id). Canonical dedup key. |
|
|
75
|
+
| + [amount](#amount ) | No | number | No | - | Payment amount, denormalized from payload.amount.amount (XOF). |
|
|
76
|
+
| + [currency](#currency ) | No | string | No | - | Currency code, denormalized from payload.amount.currency (e.g. "XOF"). |
|
|
77
|
+
| + [payload](#payload ) | No | object | No | - | Full parsed provider payload. Shape varies by provider. Contains PII (customer phone). See x-note for retention policy status. |
|
|
78
|
+
| + [rawBody](#rawBody ) | No | string | No | - | Verbatim raw request body — used for HMAC-SHA256 verification. Contains PII. |
|
|
79
|
+
| - [headers](#headers ) | No | object or null | No | - | Incoming HTTP headers. Includes provider signature header and Sentry trace. Sensitive. |
|
|
80
|
+
| + [receivedAt](#receivedAt ) | No | object | No | In #/definitions/firestore-timestamp | When the webhook delivery was received by the backend. |
|
|
81
|
+
|
|
82
|
+
## <a name="id"></a>1. Property `id`
|
|
83
|
+
|
|
84
|
+
| | |
|
|
85
|
+
| ------------ | ---------------- |
|
|
86
|
+
| **Type** | `string or null` |
|
|
87
|
+
| **Required** | No |
|
|
88
|
+
|
|
89
|
+
**Description:** (Read-only) Firestore document ID, auto-generated.
|
|
90
|
+
|
|
91
|
+
:::warning Server-set
|
|
92
|
+
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
93
|
+
:::
|
|
94
|
+
|
|
95
|
+
## <a name="company"></a>2. Property `company`
|
|
96
|
+
|
|
97
|
+
| | |
|
|
98
|
+
| ------------ | -------- |
|
|
99
|
+
| **Type** | `string` |
|
|
100
|
+
| **Required** | Yes |
|
|
101
|
+
|
|
102
|
+
**Description:** (Immutable) Company document ID (e.g. "gerko_studios"). Resolved from the matched endpoint at delivery time.
|
|
103
|
+
|
|
104
|
+
:::info Immutable
|
|
105
|
+
Set at creation only. This field cannot be modified after the document is created. Include it in CREATE payloads; omit it (or leave unchanged) in UPDATE payloads.
|
|
106
|
+
:::
|
|
107
|
+
|
|
108
|
+
## <a name="provider"></a>3. Property `provider`
|
|
109
|
+
|
|
110
|
+
| | |
|
|
111
|
+
| ------------ | -------- |
|
|
112
|
+
| **Type** | `string` |
|
|
113
|
+
| **Required** | Yes |
|
|
114
|
+
|
|
115
|
+
**Description:** Payment provider that sent this webhook (e.g. "jeko", "wave").
|
|
116
|
+
|
|
117
|
+
:::note
|
|
118
|
+
Observed value: "jeko". The inner payload.paymentMethod may differ (e.g. "wave") — provider here is the webhook sender, not the payment rail (#42).
|
|
119
|
+
:::
|
|
120
|
+
|
|
121
|
+
## <a name="eventType"></a>4. Property `eventType`
|
|
122
|
+
|
|
123
|
+
| | |
|
|
124
|
+
| ------------ | -------- |
|
|
125
|
+
| **Type** | `string` |
|
|
126
|
+
| **Required** | Yes |
|
|
127
|
+
|
|
128
|
+
**Description:** Provider-defined event type. Observed: "transaction.payment". Full set per provider TBD (#42).
|
|
129
|
+
|
|
130
|
+
:::note
|
|
131
|
+
Observed value: "transaction.payment". Jeko docs say "transaction.completed" — full set per provider unconfirmed (#42). Use z.string() to avoid rejecting unseen values.
|
|
132
|
+
:::
|
|
133
|
+
|
|
134
|
+
## <a name="status"></a>5. Property `status`
|
|
135
|
+
|
|
136
|
+
| | |
|
|
137
|
+
| ------------ | -------- |
|
|
138
|
+
| **Type** | `string` |
|
|
139
|
+
| **Required** | Yes |
|
|
140
|
+
|
|
141
|
+
**Description:** Processing outcome. Observed values: "success" | "error".
|
|
142
|
+
|
|
143
|
+
:::note
|
|
144
|
+
Observed values: "success", "error". Indicates whether the webhook was processed without errors.
|
|
145
|
+
:::
|
|
146
|
+
|
|
147
|
+
## <a name="verified"></a>6. Property `verified`
|
|
148
|
+
|
|
149
|
+
| | |
|
|
150
|
+
| ------------ | -------- |
|
|
151
|
+
| **Type** | `string` |
|
|
152
|
+
| **Required** | Yes |
|
|
153
|
+
|
|
154
|
+
**Description:** Signature verification result. Observed: "verified". Other values (e.g. "unverified", "error") may exist but are unconfirmed.
|
|
155
|
+
|
|
156
|
+
:::note
|
|
157
|
+
Observed value: "verified". Indicates HMAC-SHA256 signature verification result. Full set of failure values unconfirmed (#42).
|
|
158
|
+
:::
|
|
159
|
+
|
|
160
|
+
## <a name="endpointStatus"></a>7. Property `endpointStatus`
|
|
161
|
+
|
|
162
|
+
| | |
|
|
163
|
+
| ------------ | -------- |
|
|
164
|
+
| **Type** | `string` |
|
|
165
|
+
| **Required** | Yes |
|
|
166
|
+
|
|
167
|
+
**Description:** Endpoint resolution result. Observed: "matched". Other values unconfirmed (#42).
|
|
168
|
+
|
|
169
|
+
:::note
|
|
170
|
+
Observed value: "matched". Indicates whether the token resolved to a known PaymentWebhookEndpoint. Other values (e.g. "not_found", "inactive") unconfirmed (#42).
|
|
171
|
+
:::
|
|
172
|
+
|
|
173
|
+
## <a name="processed"></a>8. Property `processed`
|
|
174
|
+
|
|
175
|
+
| | |
|
|
176
|
+
| ------------ | --------- |
|
|
177
|
+
| **Type** | `boolean` |
|
|
178
|
+
| **Required** | Yes |
|
|
179
|
+
|
|
180
|
+
**Description:** Whether this delivery has been reconciled to the AppPayment ledger.
|
|
181
|
+
|
|
182
|
+
:::note
|
|
183
|
+
Set to true once the delivery has been reconciled to the AppPayment ledger (companies/\{cid\}/apps/\{appId\}/payments). Back-reference FK not stored on this doc — reconciliation is tracked on the AppPayment side.
|
|
184
|
+
:::
|
|
185
|
+
|
|
186
|
+
## <a name="reference"></a>9. Property `reference`
|
|
187
|
+
|
|
188
|
+
| | |
|
|
189
|
+
| ------------ | -------- |
|
|
190
|
+
| **Type** | `string` |
|
|
191
|
+
| **Required** | Yes |
|
|
192
|
+
|
|
193
|
+
**Description:** Provider transaction ID (= payload.id). Canonical dedup key.
|
|
194
|
+
|
|
195
|
+
:::note
|
|
196
|
+
Equals payload.id (provider transaction ID). Used as dedup key — the backend checks this before processing (#42 ask 3).
|
|
197
|
+
:::
|
|
198
|
+
|
|
199
|
+
## <a name="amount"></a>10. Property `amount`
|
|
200
|
+
|
|
201
|
+
| | |
|
|
202
|
+
| ------------ | -------- |
|
|
203
|
+
| **Type** | `number` |
|
|
204
|
+
| **Required** | Yes |
|
|
205
|
+
|
|
206
|
+
**Description:** Payment amount, denormalized from payload.amount.amount (XOF).
|
|
207
|
+
|
|
208
|
+
## <a name="currency"></a>11. Property `currency`
|
|
209
|
+
|
|
210
|
+
| | |
|
|
211
|
+
| ------------ | -------- |
|
|
212
|
+
| **Type** | `string` |
|
|
213
|
+
| **Required** | Yes |
|
|
214
|
+
|
|
215
|
+
**Description:** Currency code, denormalized from payload.amount.currency (e.g. "XOF").
|
|
216
|
+
|
|
217
|
+
## <a name="payload"></a>12. Property `payload`
|
|
218
|
+
|
|
219
|
+
| | |
|
|
220
|
+
| ------------------------- | ------------------------------------------------------------------------------------ |
|
|
221
|
+
| **Type** | `object` |
|
|
222
|
+
| **Required** | Yes |
|
|
223
|
+
| **Additional properties** | [Each additional property must conform to the schema](#payload_additionalProperties) |
|
|
224
|
+
|
|
225
|
+
**Description:** Full parsed provider payload. Shape varies by provider. Contains PII (customer phone). See x-note for retention policy status.
|
|
226
|
+
|
|
227
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
228
|
+
| ------------------------------------ | ------- | ------ | ---------- | ---------- | ----------------- |
|
|
229
|
+
| - [](#payload_additionalProperties ) | No | object | No | - | - |
|
|
230
|
+
|
|
231
|
+
### <a name="payload_additionalProperties"></a>12.1. Property `additionalProperties`
|
|
232
|
+
|
|
233
|
+
| | |
|
|
234
|
+
| ------------------------- | ---------------- |
|
|
235
|
+
| **Type** | `object` |
|
|
236
|
+
| **Required** | No |
|
|
237
|
+
| **Additional properties** | Any type allowed |
|
|
238
|
+
|
|
239
|
+
:::note
|
|
240
|
+
Parsed provider request body. Contains PII: counterpartIdentifier and counterpartLabel hold customer phone numbers. Retention/TTL policy TBD (#42 ask 5).
|
|
241
|
+
:::
|
|
242
|
+
|
|
243
|
+
## <a name="rawBody"></a>13. Property `rawBody`
|
|
244
|
+
|
|
245
|
+
| | |
|
|
246
|
+
| ------------ | -------- |
|
|
247
|
+
| **Type** | `string` |
|
|
248
|
+
| **Required** | Yes |
|
|
249
|
+
|
|
250
|
+
**Description:** Verbatim raw request body — used for HMAC-SHA256 verification. Contains PII.
|
|
251
|
+
|
|
252
|
+
:::note
|
|
253
|
+
Verbatim request body string used for HMAC-SHA256 signature verification. Contains same PII as payload. Retention/TTL policy TBD (#42 ask 5).
|
|
254
|
+
:::
|
|
255
|
+
|
|
256
|
+
## <a name="headers"></a>14. Property `headers`
|
|
257
|
+
|
|
258
|
+
| | |
|
|
259
|
+
| ------------ | ---------------- |
|
|
260
|
+
| **Type** | `object or null` |
|
|
261
|
+
| **Required** | No |
|
|
262
|
+
|
|
263
|
+
**Description:** Incoming HTTP headers. Includes provider signature header and Sentry trace. Sensitive.
|
|
264
|
+
|
|
265
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
266
|
+
| ------------------------------------ | ------- | ------ | ---------- | ---------- | ----------------- |
|
|
267
|
+
| - [](#headers_additionalProperties ) | No | string | No | - | - |
|
|
268
|
+
|
|
269
|
+
### <a name="headers_additionalProperties"></a>14.1. Property `additionalProperties`
|
|
270
|
+
|
|
271
|
+
| | |
|
|
272
|
+
| ------------ | -------- |
|
|
273
|
+
| **Type** | `string` |
|
|
274
|
+
| **Required** | No |
|
|
275
|
+
|
|
276
|
+
:::note
|
|
277
|
+
Request headers including provider signature (e.g. "jeko-signature") and tracing headers. Sensitive — do not expose to clients.
|
|
278
|
+
:::
|
|
279
|
+
|
|
280
|
+
## <a name="receivedAt"></a>15. Property `receivedAt`
|
|
281
|
+
|
|
282
|
+
| | |
|
|
283
|
+
| ------------------------- | --------------------------------- |
|
|
284
|
+
| **Type** | `object` |
|
|
285
|
+
| **Required** | Yes |
|
|
286
|
+
| **Additional properties** | Not allowed |
|
|
287
|
+
| **Defined in** | #/definitions/firestore-timestamp |
|
|
288
|
+
|
|
289
|
+
**Description:** When the webhook delivery was received by the backend.
|
|
290
|
+
|
|
291
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
292
|
+
| ------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
|
|
293
|
+
| + [_seconds](#receivedAt__seconds ) | No | integer | No | - | - |
|
|
294
|
+
| + [_nanoseconds](#receivedAt__nanoseconds ) | No | integer | No | - | - |
|
|
295
|
+
|
|
296
|
+
### <a name="receivedAt__seconds"></a>15.1. Property `_seconds`
|
|
297
|
+
|
|
298
|
+
| | |
|
|
299
|
+
| ------------ | --------- |
|
|
300
|
+
| **Type** | `integer` |
|
|
301
|
+
| **Required** | Yes |
|
|
302
|
+
|
|
303
|
+
| Restrictions | |
|
|
304
|
+
| ------------ | ---------------------- |
|
|
305
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
306
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
307
|
+
|
|
308
|
+
### <a name="receivedAt__nanoseconds"></a>15.2. Property `_nanoseconds`
|
|
309
|
+
|
|
310
|
+
| | |
|
|
311
|
+
| ------------ | --------- |
|
|
312
|
+
| **Type** | `integer` |
|
|
313
|
+
| **Required** | Yes |
|
|
314
|
+
|
|
315
|
+
| Restrictions | |
|
|
316
|
+
| ------------ | ---------------------- |
|
|
317
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
318
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
319
|
+
|
|
320
|
+
----------------------------------------------------------------------------------------------------------------------------
|
|
321
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "PaymentWebhookEndpoint"
|
|
3
3
|
sidebar_label: "PaymentWebhookEndpoint"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 30
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# PaymentWebhookEndpoint
|
|
@@ -184,7 +184,7 @@ Provider-specific webhook signing secret. Used to verify HMAC-SHA256 signatures
|
|
|
184
184
|
| **Required** | No |
|
|
185
185
|
|
|
186
186
|
----------------------------------------------------------------------------------------------------------------------------
|
|
187
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
187
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
|
|
188
188
|
|
|
189
189
|
:::warning Server-set
|
|
190
190
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
package/data/docs/models/sale.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Sale"
|
|
3
3
|
sidebar_label: "Sale"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 31
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Sale
|
|
@@ -524,7 +524,7 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
524
524
|
| **Required** | No |
|
|
525
525
|
|
|
526
526
|
----------------------------------------------------------------------------------------------------------------------------
|
|
527
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
527
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
|
|
528
528
|
|
|
529
529
|
:::warning Server-set
|
|
530
530
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "SitePayment"
|
|
3
3
|
sidebar_label: "SitePayment"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 33
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# SitePayment
|
|
@@ -197,4 +197,4 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
197
197
|
| **Maximum** | ≤ 9007199254740991 |
|
|
198
198
|
|
|
199
199
|
----------------------------------------------------------------------------------------------------------------------------
|
|
200
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
200
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
|
package/data/docs/models/site.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Site"
|
|
3
3
|
sidebar_label: "Site"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 32
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Site
|
|
@@ -546,7 +546,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
546
546
|
**Description:** Timestamp of the most recent analytics event seen for this site.
|
|
547
547
|
|
|
548
548
|
----------------------------------------------------------------------------------------------------------------------------
|
|
549
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
549
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
|
|
550
550
|
|
|
551
551
|
:::warning Server-set
|
|
552
552
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "StocktakeItem"
|
|
3
3
|
sidebar_label: "StocktakeItem"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 35
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# StocktakeItem
|
|
@@ -497,4 +497,4 @@ Read-time hint snapshot of the verifier's display name (GH#29 §3 / Q10).
|
|
|
497
497
|
| **Required** | No |
|
|
498
498
|
|
|
499
499
|
----------------------------------------------------------------------------------------------------------------------------
|
|
500
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
500
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Stocktake"
|
|
3
3
|
sidebar_label: "Stocktake"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 34
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Stocktake
|
|
@@ -642,7 +642,7 @@ Read-time hint snapshot of the completer's display name (GH#29 §3 / Q10).
|
|
|
642
642
|
| **Required** | No |
|
|
643
643
|
|
|
644
644
|
----------------------------------------------------------------------------------------------------------------------------
|
|
645
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
645
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
646
646
|
|
|
647
647
|
:::warning Server-set
|
|
648
648
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Ticket"
|
|
3
3
|
sidebar_label: "Ticket"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 36
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Ticket
|
|
@@ -388,7 +388,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
388
388
|
**Description:** (Immutable) FK → User/staff UID who created this ticket.
|
|
389
389
|
|
|
390
390
|
----------------------------------------------------------------------------------------------------------------------------
|
|
391
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
391
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
392
392
|
|
|
393
393
|
:::info Immutable
|
|
394
394
|
Set at creation only. This field cannot be modified after the document is created. Include it in CREATE payloads; omit it (or leave unchanged) in UPDATE payloads.
|
package/data/docs/models/user.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "User"
|
|
3
3
|
sidebar_label: "User"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 37
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# User
|
|
@@ -242,7 +242,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
242
242
|
| **Required** | No |
|
|
243
243
|
|
|
244
244
|
----------------------------------------------------------------------------------------------------------------------------
|
|
245
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
245
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
246
246
|
|
|
247
247
|
:::warning Server-set
|
|
248
248
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "WhatsappInboundMessage"
|
|
3
3
|
sidebar_label: "WhatsappInboundMessage"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 38
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# WhatsappInboundMessage
|
|
@@ -23,7 +23,8 @@ sidebar_position: 36
|
|
|
23
23
|
"mediaId": null,
|
|
24
24
|
"caption": null,
|
|
25
25
|
"storageUrl": null,
|
|
26
|
-
"context": null
|
|
26
|
+
"context": null,
|
|
27
|
+
"contactE164": null
|
|
27
28
|
}
|
|
28
29
|
```
|
|
29
30
|
|
|
@@ -52,6 +53,7 @@ sidebar_position: 36
|
|
|
52
53
|
- [13.1. Property `id`](#context_id)
|
|
53
54
|
- [13.2. Property `from`](#context_from)
|
|
54
55
|
- [13.3. Property `forwarded`](#context_forwarded)
|
|
56
|
+
- [14. Property `contactE164`](#contactE164)
|
|
55
57
|
|
|
56
58
|
| | |
|
|
57
59
|
| ------------------------- | -------------------------------------- |
|
|
@@ -62,21 +64,22 @@ sidebar_position: 36
|
|
|
62
64
|
|
|
63
65
|
**Description:** WhatsappInboundMessage — inbound WhatsApp message persisted from Meta Cloud API webhook (GH#36). Collection: whatsapp_inbound_messages/\{docId\}. Top-level scope: company resolution happens post-ingestion.
|
|
64
66
|
|
|
65
|
-
| Property
|
|
66
|
-
|
|
|
67
|
-
| - [id](#id )
|
|
68
|
-
| + [wabaId](#wabaId )
|
|
69
|
-
| + [waba](#waba )
|
|
70
|
-
| + [messageId](#messageId )
|
|
71
|
-
| + [from](#from )
|
|
72
|
-
| + [type](#type )
|
|
73
|
-
| + [timestamp](#timestamp )
|
|
74
|
-
| + [receivedAt](#receivedAt )
|
|
75
|
-
| - [text](#text )
|
|
76
|
-
| - [mediaId](#mediaId )
|
|
77
|
-
| - [caption](#caption )
|
|
78
|
-
| - [storageUrl](#storageUrl )
|
|
79
|
-
| - [context](#context )
|
|
67
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
68
|
+
| ------------------------------ | ------- | ---------------- | ---------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
69
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — wamid from Meta Cloud API. |
|
|
70
|
+
| + [wabaId](#wabaId ) | No | string | No | - | (Immutable) Meta WABA ID identifying which business number received the message. |
|
|
71
|
+
| + [waba](#waba ) | No | enum (of string) | No | In #/definitions/waba-label | (Immutable) Human-readable WABA label (cmz \| val). See WabaLabel enum. |
|
|
72
|
+
| + [messageId](#messageId ) | No | string | No | - | (Immutable) WhatsApp message ID (wamid) returned by Meta — mirrors the document ID. |
|
|
73
|
+
| + [from](#from ) | No | string | No | - | (Immutable) Sender phone number in E.164 format. |
|
|
74
|
+
| + [type](#type ) | No | Combination | No | - | (Immutable) Meta message type. |
|
|
75
|
+
| + [timestamp](#timestamp ) | No | object | No | In #/definitions/firestore-timestamp | (Immutable) Message timestamp as reported by Meta. |
|
|
76
|
+
| + [receivedAt](#receivedAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-side ingestion timestamp. |
|
|
77
|
+
| - [text](#text ) | No | string or null | No | - | Message body text. Present on type=text messages only. |
|
|
78
|
+
| - [mediaId](#mediaId ) | No | string or null | No | - | Meta media ID. Present on image, audio, video, document, sticker messages. |
|
|
79
|
+
| - [caption](#caption ) | No | string or null | No | - | Media caption text. Present when the sender included a caption. |
|
|
80
|
+
| - [storageUrl](#storageUrl ) | No | string or null | No | - | Durable Cloud Storage URL for the downloaded media binary. Present after the media has been fetched and stored server-side. |
|
|
81
|
+
| - [context](#context ) | No | object or null | No | - | Reply/forward context. Present on replies and forwarded messages. |
|
|
82
|
+
| - [contactE164](#contactE164 ) | No | string or null | No | - | (Read-only) E.164-normalized sender phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs. |
|
|
80
83
|
|
|
81
84
|
## <a name="id"></a>1. Property `id`
|
|
82
85
|
|
|
@@ -369,5 +372,26 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
369
372
|
|
|
370
373
|
Specific value: `true`
|
|
371
374
|
|
|
375
|
+
## <a name="contactE164"></a>14. Property `contactE164`
|
|
376
|
+
|
|
377
|
+
| | |
|
|
378
|
+
| ------------ | ---------------- |
|
|
379
|
+
| **Type** | `string or null` |
|
|
380
|
+
| **Required** | No |
|
|
381
|
+
|
|
382
|
+
**Description:** (Read-only) E.164-normalized sender phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs.
|
|
383
|
+
|
|
372
384
|
----------------------------------------------------------------------------------------------------------------------------
|
|
373
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
385
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
386
|
+
|
|
387
|
+
:::warning Server-set
|
|
388
|
+
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
389
|
+
:::
|
|
390
|
+
|
|
391
|
+
:::note
|
|
392
|
+
E.164-normalized form of `from` (wa_id). Canonical join key across WhatsappInboundMessage, WhatsappOutboundMessage, and NotificationRecord. Use this for conversation threading, search, and cross-collection joins — not the raw `from` wa_id (#56).
|
|
393
|
+
:::
|
|
394
|
+
|
|
395
|
+
:::tip When to set
|
|
396
|
+
Populated by whatsapp-server on every new inbound doc. Absent on pre-#56 docs until the backfill migration runs. CI normalization: wa_id 22577471485 → +2250777471485 (insert trunk 0 after country code for 8-digit numbers in the 07/05/01 series that predate the 2014 10-digit migration).
|
|
397
|
+
:::
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "WhatsappOutboundLifecycleEvent"
|
|
3
3
|
sidebar_label: "WhatsappOutboundLifecycleEvent"
|
|
4
|
-
sidebar_position:
|
|
4
|
+
sidebar_position: 39
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# WhatsappOutboundLifecycleEvent
|
|
@@ -303,7 +303,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
303
303
|
**Description:** (Read-only) Raw Meta error object(s).
|
|
304
304
|
|
|
305
305
|
----------------------------------------------------------------------------------------------------------------------------
|
|
306
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
306
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
307
307
|
|
|
308
308
|
:::warning Server-set
|
|
309
309
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|