@ingenx-io/valets-schema-mcp-server 0.2.4 → 0.2.6

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.
Files changed (79) hide show
  1. package/data/docs/collections/firestore-paths.md +32 -20
  2. package/data/docs/enums/app-status.md +24 -0
  3. package/data/docs/enums/attention-status.md +2 -2
  4. package/data/docs/enums/booking-status.md +2 -2
  5. package/data/docs/enums/contract-status.md +24 -0
  6. package/data/docs/enums/customer-payment-status.md +2 -2
  7. package/data/docs/enums/customer-payment-target-type.md +2 -2
  8. package/data/docs/enums/delivery-type.md +2 -2
  9. package/data/docs/enums/deployment-link-type.md +2 -2
  10. package/data/docs/enums/event-status.md +2 -2
  11. package/data/docs/enums/fulfillment-status.md +2 -2
  12. package/data/docs/enums/loyalty-transaction-type.md +2 -2
  13. package/data/docs/enums/milestone-status.md +23 -0
  14. package/data/docs/enums/notification-channel.md +2 -2
  15. package/data/docs/enums/notification-entity-type.md +2 -2
  16. package/data/docs/enums/notification-status.md +2 -2
  17. package/data/docs/enums/order-status.md +2 -2
  18. package/data/docs/enums/outbound-message-format.md +2 -2
  19. package/data/docs/enums/outbound-message-purpose.md +2 -2
  20. package/data/docs/enums/outbound-message-status.md +2 -2
  21. package/data/docs/enums/payment-method.md +2 -2
  22. package/data/docs/enums/payment-proof-status.md +2 -2
  23. package/data/docs/enums/payment-status.md +2 -2
  24. package/data/docs/enums/pending-issue.md +2 -2
  25. package/data/docs/enums/return-status.md +2 -2
  26. package/data/docs/enums/session-status.md +2 -2
  27. package/data/docs/enums/site-status.md +2 -2
  28. package/data/docs/enums/stocktake-frequency.md +2 -2
  29. package/data/docs/enums/stocktake-item-status.md +2 -2
  30. package/data/docs/enums/stocktake-status.md +2 -2
  31. package/data/docs/enums/ticket-status.md +2 -2
  32. package/data/docs/enums/waba-label.md +3 -3
  33. package/data/docs/enums/whatsapp-button-sub-type.md +2 -2
  34. package/data/docs/enums/whatsapp-template-component.md +2 -2
  35. package/data/docs/enums/whatsapp-template-status.md +2 -2
  36. package/data/docs/index.md +17 -7
  37. package/data/docs/models/allowed-user.md +7 -7
  38. package/data/docs/models/analytics-backfill.md +7 -7
  39. package/data/docs/models/analytics-daily.md +6 -6
  40. package/data/docs/models/analytics-event.md +7 -7
  41. package/data/docs/models/analytics-hourly.md +6 -6
  42. package/data/docs/models/app-payment.md +200 -0
  43. package/data/docs/models/app.md +585 -0
  44. package/data/docs/models/booking-version.md +2 -2
  45. package/data/docs/models/booking.md +127 -127
  46. package/data/docs/models/contract.md +454 -0
  47. package/data/docs/models/customer-payment-allocation.md +20 -20
  48. package/data/docs/models/customer-payment.md +23 -23
  49. package/data/docs/models/customer.md +11 -11
  50. package/data/docs/models/event.md +22 -22
  51. package/data/docs/models/loyalty-config.md +4 -4
  52. package/data/docs/models/loyalty-reward.md +3 -3
  53. package/data/docs/models/loyalty-status.md +6 -6
  54. package/data/docs/models/loyalty-transaction.md +2 -2
  55. package/data/docs/models/magic-link-request.md +9 -9
  56. package/data/docs/models/metrics-current.md +169 -37
  57. package/data/docs/models/metrics-daily.md +172 -40
  58. package/data/docs/models/metrics-monthly.md +172 -40
  59. package/data/docs/models/notification-record.md +3 -3
  60. package/data/docs/models/order-item.md +6 -6
  61. package/data/docs/models/order.md +314 -294
  62. package/data/docs/models/outbound-payment-allocation.md +195 -0
  63. package/data/docs/models/outbound-payment.md +318 -0
  64. package/data/docs/models/payment-webhook-endpoint.md +191 -0
  65. package/data/docs/models/sale.md +18 -18
  66. package/data/docs/models/site-payment.md +2 -2
  67. package/data/docs/models/site.md +2 -2
  68. package/data/docs/models/stocktake-item.md +4 -4
  69. package/data/docs/models/stocktake.md +5 -5
  70. package/data/docs/models/ticket.md +3 -3
  71. package/data/docs/models/user.md +249 -0
  72. package/data/docs/models/whatsapp-inbound-message.md +6 -2
  73. package/data/docs/models/whatsapp-outbound-lifecycle-event.md +2 -2
  74. package/data/docs/models/whatsapp-outbound-message.md +43 -27
  75. package/data/docs/models/whatsapp-template.md +6 -2
  76. package/data/static/llms.txt +322 -36
  77. package/data/static/openapi.yaml +1074 -66
  78. package/data/static/schemas.json +1183 -104
  79. package/package.json +1 -1
@@ -0,0 +1,195 @@
1
+ ---
2
+ title: "OutboundPaymentAllocation"
3
+ sidebar_label: "OutboundPaymentAllocation"
4
+ sidebar_position: 27
5
+ ---
6
+
7
+ # OutboundPaymentAllocation
8
+
9
+ <details>
10
+ <summary>Example JSON</summary>
11
+
12
+ ```json
13
+ {
14
+ "id": null,
15
+ "outboundPaymentId": "out_ref123",
16
+ "expenseId": "exp_ref123",
17
+ "companyId": "comp_xyz789",
18
+ "amount": 45000,
19
+ "notes": null,
20
+ "allocatedAt": "allocatedAt"
21
+ }
22
+ ```
23
+
24
+ </details>
25
+
26
+
27
+ - [1. Property `id`](#id)
28
+ - [2. Property `outboundPaymentId`](#outboundPaymentId)
29
+ - [3. Property `expenseId`](#expenseId)
30
+ - [4. Property `companyId`](#companyId)
31
+ - [5. Property `amount`](#amount)
32
+ - [6. Property `notes`](#notes)
33
+ - [7. Property `allocatedAt`](#allocatedAt)
34
+ - [7.1. Property `firestore-timestamp`](#allocatedAt_anyOf_i0)
35
+ - [7.1.1. Property `_seconds`](#allocatedAt_anyOf_i0__seconds)
36
+ - [7.1.2. Property `_nanoseconds`](#allocatedAt_anyOf_i0__nanoseconds)
37
+ - [7.2. Property `item 1`](#allocatedAt_anyOf_i1)
38
+
39
+ | | |
40
+ | ------------------------- | ----------------------------------------- |
41
+ | **Type** | `object` |
42
+ | **Required** | No |
43
+ | **Additional properties** | Not allowed |
44
+ | **Defined in** | #/definitions/outbound-payment-allocation |
45
+
46
+ **Description:** OutboundPaymentAllocation (GH#15). Subcollection: companies/\{companyId\}/outboundPayments/\{paymentId\}/allocations/\{allocationId\}. Links an OutboundPayment to an Expense. Supports partial and multi-expense allocations.
47
+
48
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
49
+ | ------------------------------------------ | ------- | -------------- | ---------- | ---------- | -------------------------------------------------------------------------------- |
50
+ | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID, auto-generated. |
51
+ | + [outboundPaymentId](#outboundPaymentId ) | No | string | No | - | (Immutable) FK → OutboundPayment document ID (parent). |
52
+ | + [expenseId](#expenseId ) | No | string | No | - | (Immutable) FK → Expense document ID. Full Expense model tracked in #20. |
53
+ | + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. Denormalized for collection-group queries. |
54
+ | + [amount](#amount ) | No | number | No | - | Amount of this payment allocated to the referenced expense (XOF). |
55
+ | - [notes](#notes ) | No | string or null | No | - | Optional notes about this allocation. |
56
+ | - [allocatedAt](#allocatedAt ) | No | Combination | No | - | (Read-only) When this allocation was recorded. |
57
+
58
+ ## <a name="id"></a>1. Property `id`
59
+
60
+ | | |
61
+ | ------------ | ---------------- |
62
+ | **Type** | `string or null` |
63
+ | **Required** | No |
64
+
65
+ **Description:** (Read-only) Firestore document ID, auto-generated.
66
+
67
+ :::warning Server-set
68
+ 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.
69
+ :::
70
+
71
+ ## <a name="outboundPaymentId"></a>2. Property `outboundPaymentId`
72
+
73
+ | | |
74
+ | ------------ | -------- |
75
+ | **Type** | `string` |
76
+ | **Required** | Yes |
77
+
78
+ **Description:** (Immutable) FK → OutboundPayment document ID (parent).
79
+
80
+ :::info Immutable
81
+ 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.
82
+ :::
83
+
84
+ ## <a name="expenseId"></a>3. Property `expenseId`
85
+
86
+ | | |
87
+ | ------------ | -------- |
88
+ | **Type** | `string` |
89
+ | **Required** | Yes |
90
+
91
+ **Description:** (Immutable) FK → Expense document ID. Full Expense model tracked in #20.
92
+
93
+ :::info Immutable
94
+ 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.
95
+ :::
96
+
97
+ ## <a name="companyId"></a>4. Property `companyId`
98
+
99
+ | | |
100
+ | ------------ | -------- |
101
+ | **Type** | `string` |
102
+ | **Required** | Yes |
103
+
104
+ **Description:** (Immutable) FK → Company document ID. Denormalized for collection-group queries.
105
+
106
+ :::info Immutable
107
+ 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.
108
+ :::
109
+
110
+ ## <a name="amount"></a>5. Property `amount`
111
+
112
+ | | |
113
+ | ------------ | -------- |
114
+ | **Type** | `number` |
115
+ | **Required** | Yes |
116
+
117
+ **Description:** Amount of this payment allocated to the referenced expense (XOF).
118
+
119
+ ## <a name="notes"></a>6. Property `notes`
120
+
121
+ | | |
122
+ | ------------ | ---------------- |
123
+ | **Type** | `string or null` |
124
+ | **Required** | No |
125
+
126
+ **Description:** Optional notes about this allocation.
127
+
128
+ ## <a name="allocatedAt"></a>7. Property `allocatedAt`
129
+
130
+ | | |
131
+ | ------------------------- | ---------------- |
132
+ | **Type** | `combining` |
133
+ | **Required** | No |
134
+ | **Additional properties** | Any type allowed |
135
+
136
+ **Description:** (Read-only) When this allocation was recorded.
137
+
138
+ | Any of(Option) |
139
+ | -------------------------------------------- |
140
+ | [firestore-timestamp](#allocatedAt_anyOf_i0) |
141
+ | [item 1](#allocatedAt_anyOf_i1) |
142
+
143
+ ### <a name="allocatedAt_anyOf_i0"></a>7.1. Property `firestore-timestamp`
144
+
145
+ | | |
146
+ | ------------------------- | --------------------------------- |
147
+ | **Type** | `object` |
148
+ | **Required** | No |
149
+ | **Additional properties** | Not allowed |
150
+ | **Defined in** | #/definitions/firestore-timestamp |
151
+
152
+ **Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
153
+
154
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
155
+ | ----------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
156
+ | + [_seconds](#allocatedAt_anyOf_i0__seconds ) | No | integer | No | - | - |
157
+ | + [_nanoseconds](#allocatedAt_anyOf_i0__nanoseconds ) | No | integer | No | - | - |
158
+
159
+ #### <a name="allocatedAt_anyOf_i0__seconds"></a>7.1.1. Property `_seconds`
160
+
161
+ | | |
162
+ | ------------ | --------- |
163
+ | **Type** | `integer` |
164
+ | **Required** | Yes |
165
+
166
+ | Restrictions | |
167
+ | ------------ | ---------------------- |
168
+ | **Minimum** | &ge; -9007199254740991 |
169
+ | **Maximum** | &le; 9007199254740991 |
170
+
171
+ #### <a name="allocatedAt_anyOf_i0__nanoseconds"></a>7.1.2. Property `_nanoseconds`
172
+
173
+ | | |
174
+ | ------------ | --------- |
175
+ | **Type** | `integer` |
176
+ | **Required** | Yes |
177
+
178
+ | Restrictions | |
179
+ | ------------ | ---------------------- |
180
+ | **Minimum** | &ge; -9007199254740991 |
181
+ | **Maximum** | &le; 9007199254740991 |
182
+
183
+ ### <a name="allocatedAt_anyOf_i1"></a>7.2. Property `item 1`
184
+
185
+ | | |
186
+ | ------------ | ------ |
187
+ | **Type** | `null` |
188
+ | **Required** | No |
189
+
190
+ ----------------------------------------------------------------------------------------------------------------------------
191
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
192
+
193
+ :::warning Server-set
194
+ 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.
195
+ :::
@@ -0,0 +1,318 @@
1
+ ---
2
+ title: "OutboundPayment"
3
+ sidebar_label: "OutboundPayment"
4
+ sidebar_position: 26
5
+ ---
6
+
7
+ # OutboundPayment
8
+
9
+ <details>
10
+ <summary>Example JSON</summary>
11
+
12
+ ```json
13
+ {
14
+ "id": null,
15
+ "companyId": "comp_xyz789",
16
+ "payeeId": "pay_ref123",
17
+ "contractId": null,
18
+ "amount": 45000,
19
+ "currency": "XOF",
20
+ "method": "method",
21
+ "reference": null,
22
+ "paidAt": "pai_ref123",
23
+ "notes": null,
24
+ "createdBy": "staff_k0f1",
25
+ "createdAt": "createdAt",
26
+ "updatedAt": "updatedAt"
27
+ }
28
+ ```
29
+
30
+ </details>
31
+
32
+
33
+ - [1. Property `id`](#id)
34
+ - [2. Property `companyId`](#companyId)
35
+ - [3. Property `payeeId`](#payeeId)
36
+ - [4. Property `contractId`](#contractId)
37
+ - [5. Property `amount`](#amount)
38
+ - [6. Property `currency`](#currency)
39
+ - [7. Property `method`](#method)
40
+ - [8. Property `reference`](#reference)
41
+ - [9. Property `paidAt`](#paidAt)
42
+ - [9.1. Property `_seconds`](#paidAt__seconds)
43
+ - [9.2. Property `_nanoseconds`](#paidAt__nanoseconds)
44
+ - [10. Property `notes`](#notes)
45
+ - [11. Property `createdBy`](#createdBy)
46
+ - [12. Property `createdAt`](#createdAt)
47
+ - [12.1. Property `firestore-timestamp`](#createdAt_anyOf_i0)
48
+ - [12.2. Property `item 1`](#createdAt_anyOf_i1)
49
+ - [13. Property `updatedAt`](#updatedAt)
50
+ - [13.1. Property `firestore-timestamp`](#updatedAt_anyOf_i0)
51
+ - [13.2. Property `item 1`](#updatedAt_anyOf_i1)
52
+
53
+ | | |
54
+ | ------------------------- | ------------------------------ |
55
+ | **Type** | `object` |
56
+ | **Required** | No |
57
+ | **Additional properties** | Not allowed |
58
+ | **Defined in** | #/definitions/outbound-payment |
59
+
60
+ **Description:** OutboundPayment (GH#15). Collection: companies/\{companyId\}/outboundPayments/\{paymentId\}. Single outbound transfer to a Payee. Canonical name chosen over SupplierPayment/VendorPayment — direction-based, agnostic of payee type. Currency locked to XOF.
61
+
62
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
63
+ | ---------------------------- | ------- | ---------------- | ---------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------ |
64
+ | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID, auto-generated. |
65
+ | + [companyId](#companyId ) | No | string | No | - | (Immutable) FK → Company document ID. |
66
+ | + [payeeId](#payeeId ) | No | string | No | - | (Immutable) FK → Payee document ID. Full Payee model tracked in #20. |
67
+ | - [contractId](#contractId ) | No | string or null | No | - | (Immutable, Optional) FK → Contract document ID. Absent for ad-hoc payments outside a formal contract. |
68
+ | + [amount](#amount ) | No | number | No | - | Amount paid (XOF). |
69
+ | + [currency](#currency ) | No | const | No | - | Currency code. Locked to XOF — consistent with Contract and CustomerPayment. |
70
+ | + [method](#method ) | No | enum (of string) | No | In #/definitions/payment-method | Payment method used (e.g. BANK_TRANSFER, MOBILE_MONEY, CHECK). |
71
+ | - [reference](#reference ) | No | string or null | No | - | Optional payment reference — bank transaction number, check number, Wave ref, etc. |
72
+ | + [paidAt](#paidAt ) | No | object | No | In #/definitions/firestore-timestamp | When the payment was made. |
73
+ | - [notes](#notes ) | No | string or null | No | - | Optional internal notes. |
74
+ | + [createdBy](#createdBy ) | No | string | No | - | (Immutable) FK → User/staff UID who recorded the payment. |
75
+ | - [createdAt](#createdAt ) | No | Combination | No | - | (Read-only) Server-generated creation timestamp. |
76
+ | - [updatedAt](#updatedAt ) | No | Combination | No | - | (Read-only) Server-generated update timestamp. |
77
+
78
+ ## <a name="id"></a>1. Property `id`
79
+
80
+ | | |
81
+ | ------------ | ---------------- |
82
+ | **Type** | `string or null` |
83
+ | **Required** | No |
84
+
85
+ **Description:** (Read-only) Firestore document ID, auto-generated.
86
+
87
+ :::warning Server-set
88
+ 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.
89
+ :::
90
+
91
+ ## <a name="companyId"></a>2. Property `companyId`
92
+
93
+ | | |
94
+ | ------------ | -------- |
95
+ | **Type** | `string` |
96
+ | **Required** | Yes |
97
+
98
+ **Description:** (Immutable) FK → Company document ID.
99
+
100
+ :::info Immutable
101
+ 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.
102
+ :::
103
+
104
+ ## <a name="payeeId"></a>3. Property `payeeId`
105
+
106
+ | | |
107
+ | ------------ | -------- |
108
+ | **Type** | `string` |
109
+ | **Required** | Yes |
110
+
111
+ **Description:** (Immutable) FK → Payee document ID. Full Payee model tracked in #20.
112
+
113
+ :::info Immutable
114
+ 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.
115
+ :::
116
+
117
+ ## <a name="contractId"></a>4. Property `contractId`
118
+
119
+ | | |
120
+ | ------------ | ---------------- |
121
+ | **Type** | `string or null` |
122
+ | **Required** | No |
123
+
124
+ **Description:** (Immutable, Optional) FK → Contract document ID. Absent for ad-hoc payments outside a formal contract.
125
+
126
+ :::info Immutable
127
+ 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.
128
+ :::
129
+
130
+ ## <a name="amount"></a>5. Property `amount`
131
+
132
+ | | |
133
+ | ------------ | -------- |
134
+ | **Type** | `number` |
135
+ | **Required** | Yes |
136
+
137
+ **Description:** Amount paid (XOF).
138
+
139
+ ## <a name="currency"></a>6. Property `currency`
140
+
141
+ | | |
142
+ | ------------ | ------- |
143
+ | **Type** | `const` |
144
+ | **Required** | Yes |
145
+
146
+ **Description:** Currency code. Locked to XOF — consistent with Contract and CustomerPayment.
147
+
148
+ Specific value: `"XOF"`
149
+
150
+ ## <a name="method"></a>7. Property `method`
151
+
152
+ | | |
153
+ | -------------- | ---------------------------- |
154
+ | **Type** | `enum (of string)` |
155
+ | **Required** | Yes |
156
+ | **Defined in** | #/definitions/payment-method |
157
+
158
+ **Description:** Payment method used (e.g. BANK_TRANSFER, MOBILE_MONEY, CHECK).
159
+
160
+ Must be one of:
161
+ * "CASH"
162
+ * "CREDIT_CARD"
163
+ * "ORANGE_MONEY"
164
+ * "WAVE"
165
+ * "MTN_MONEY"
166
+ * "MOOV_MONEY"
167
+ * "BANK_TRANSFER"
168
+ * "PAYPAL"
169
+ * "STRIPE"
170
+ * "OTHER"
171
+
172
+ ## <a name="reference"></a>8. Property `reference`
173
+
174
+ | | |
175
+ | ------------ | ---------------- |
176
+ | **Type** | `string or null` |
177
+ | **Required** | No |
178
+
179
+ **Description:** Optional payment reference — bank transaction number, check number, Wave ref, etc.
180
+
181
+ ## <a name="paidAt"></a>9. Property `paidAt`
182
+
183
+ | | |
184
+ | ------------------------- | --------------------------------- |
185
+ | **Type** | `object` |
186
+ | **Required** | Yes |
187
+ | **Additional properties** | Not allowed |
188
+ | **Defined in** | #/definitions/firestore-timestamp |
189
+
190
+ **Description:** When the payment was made.
191
+
192
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
193
+ | --------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
194
+ | + [_seconds](#paidAt__seconds ) | No | integer | No | - | - |
195
+ | + [_nanoseconds](#paidAt__nanoseconds ) | No | integer | No | - | - |
196
+
197
+ ### <a name="paidAt__seconds"></a>9.1. Property `_seconds`
198
+
199
+ | | |
200
+ | ------------ | --------- |
201
+ | **Type** | `integer` |
202
+ | **Required** | Yes |
203
+
204
+ | Restrictions | |
205
+ | ------------ | ---------------------- |
206
+ | **Minimum** | &ge; -9007199254740991 |
207
+ | **Maximum** | &le; 9007199254740991 |
208
+
209
+ ### <a name="paidAt__nanoseconds"></a>9.2. Property `_nanoseconds`
210
+
211
+ | | |
212
+ | ------------ | --------- |
213
+ | **Type** | `integer` |
214
+ | **Required** | Yes |
215
+
216
+ | Restrictions | |
217
+ | ------------ | ---------------------- |
218
+ | **Minimum** | &ge; -9007199254740991 |
219
+ | **Maximum** | &le; 9007199254740991 |
220
+
221
+ ## <a name="notes"></a>10. Property `notes`
222
+
223
+ | | |
224
+ | ------------ | ---------------- |
225
+ | **Type** | `string or null` |
226
+ | **Required** | No |
227
+
228
+ **Description:** Optional internal notes.
229
+
230
+ ## <a name="createdBy"></a>11. Property `createdBy`
231
+
232
+ | | |
233
+ | ------------ | -------- |
234
+ | **Type** | `string` |
235
+ | **Required** | Yes |
236
+
237
+ **Description:** (Immutable) FK → User/staff UID who recorded the payment.
238
+
239
+ :::info Immutable
240
+ 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.
241
+ :::
242
+
243
+ ## <a name="createdAt"></a>12. Property `createdAt`
244
+
245
+ | | |
246
+ | ------------------------- | ---------------- |
247
+ | **Type** | `combining` |
248
+ | **Required** | No |
249
+ | **Additional properties** | Any type allowed |
250
+
251
+ **Description:** (Read-only) Server-generated creation timestamp.
252
+
253
+ | Any of(Option) |
254
+ | ------------------------------------------ |
255
+ | [firestore-timestamp](#createdAt_anyOf_i0) |
256
+ | [item 1](#createdAt_anyOf_i1) |
257
+
258
+ ### <a name="createdAt_anyOf_i0"></a>12.1. Property `firestore-timestamp`
259
+
260
+ | | |
261
+ | ------------------------- | ----------------- |
262
+ | **Type** | `object` |
263
+ | **Required** | No |
264
+ | **Additional properties** | Not allowed |
265
+ | **Same definition as** | [paidAt](#paidAt) |
266
+
267
+ **Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
268
+
269
+ ### <a name="createdAt_anyOf_i1"></a>12.2. Property `item 1`
270
+
271
+ | | |
272
+ | ------------ | ------ |
273
+ | **Type** | `null` |
274
+ | **Required** | No |
275
+
276
+ :::warning Server-set
277
+ 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.
278
+ :::
279
+
280
+ ## <a name="updatedAt"></a>13. Property `updatedAt`
281
+
282
+ | | |
283
+ | ------------------------- | ---------------- |
284
+ | **Type** | `combining` |
285
+ | **Required** | No |
286
+ | **Additional properties** | Any type allowed |
287
+
288
+ **Description:** (Read-only) Server-generated update timestamp.
289
+
290
+ | Any of(Option) |
291
+ | ------------------------------------------ |
292
+ | [firestore-timestamp](#updatedAt_anyOf_i0) |
293
+ | [item 1](#updatedAt_anyOf_i1) |
294
+
295
+ ### <a name="updatedAt_anyOf_i0"></a>13.1. Property `firestore-timestamp`
296
+
297
+ | | |
298
+ | ------------------------- | ----------------- |
299
+ | **Type** | `object` |
300
+ | **Required** | No |
301
+ | **Additional properties** | Not allowed |
302
+ | **Same definition as** | [paidAt](#paidAt) |
303
+
304
+ **Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
305
+
306
+ ### <a name="updatedAt_anyOf_i1"></a>13.2. Property `item 1`
307
+
308
+ | | |
309
+ | ------------ | ------ |
310
+ | **Type** | `null` |
311
+ | **Required** | No |
312
+
313
+ ----------------------------------------------------------------------------------------------------------------------------
314
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:38:45 +0000
315
+
316
+ :::warning Server-set
317
+ 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.
318
+ :::