@savvycal/appointments-core 1.2.0 → 1.3.0
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/dist/index.d.cts +350 -23
- package/dist/index.d.ts +350 -23
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -2206,6 +2206,20 @@ interface components {
|
|
|
2206
2206
|
* "object": "provider",
|
|
2207
2207
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
2208
2208
|
* },
|
|
2209
|
+
* "requirements": {
|
|
2210
|
+
* "booking": {
|
|
2211
|
+
* "complete": true
|
|
2212
|
+
* },
|
|
2213
|
+
* "info": {
|
|
2214
|
+
* "complete": false
|
|
2215
|
+
* },
|
|
2216
|
+
* "submissions": [
|
|
2217
|
+
* {
|
|
2218
|
+
* "complete": false,
|
|
2219
|
+
* "form_id": "frm_abc123def456"
|
|
2220
|
+
* }
|
|
2221
|
+
* ]
|
|
2222
|
+
* },
|
|
2209
2223
|
* "service": {
|
|
2210
2224
|
* "appointment_type": "in_person",
|
|
2211
2225
|
* "booking_policy": {
|
|
@@ -2298,7 +2312,19 @@ interface components {
|
|
|
2298
2312
|
* },
|
|
2299
2313
|
* "status": "slot_selected",
|
|
2300
2314
|
* "submissions": [],
|
|
2301
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
2315
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
2316
|
+
* "workflow": {
|
|
2317
|
+
* "available_steps": [
|
|
2318
|
+
* "booking",
|
|
2319
|
+
* "info",
|
|
2320
|
+
* "form:frm_abc123def456"
|
|
2321
|
+
* ],
|
|
2322
|
+
* "can_change_slot": true,
|
|
2323
|
+
* "can_complete": false,
|
|
2324
|
+
* "defunct_reason": null,
|
|
2325
|
+
* "is_defunct": false,
|
|
2326
|
+
* "resume_step": "info"
|
|
2327
|
+
* }
|
|
2302
2328
|
* },
|
|
2303
2329
|
* "type": "booking_intent.completed"
|
|
2304
2330
|
* }
|
|
@@ -2431,8 +2457,8 @@ interface components {
|
|
|
2431
2457
|
* @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
|
|
2432
2458
|
*/
|
|
2433
2459
|
end_at?: string | null;
|
|
2434
|
-
/** @description Fields to lock from public API updates.
|
|
2435
|
-
locked_fields?:
|
|
2460
|
+
/** @description Fields to lock from public API updates. */
|
|
2461
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
2436
2462
|
/** @description Custom metadata key-value pairs. */
|
|
2437
2463
|
metadata?: {
|
|
2438
2464
|
[key: string]: unknown;
|
|
@@ -2513,6 +2539,20 @@ interface components {
|
|
|
2513
2539
|
* "object": "provider",
|
|
2514
2540
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
2515
2541
|
* },
|
|
2542
|
+
* "requirements": {
|
|
2543
|
+
* "booking": {
|
|
2544
|
+
* "complete": true
|
|
2545
|
+
* },
|
|
2546
|
+
* "info": {
|
|
2547
|
+
* "complete": false
|
|
2548
|
+
* },
|
|
2549
|
+
* "submissions": [
|
|
2550
|
+
* {
|
|
2551
|
+
* "complete": false,
|
|
2552
|
+
* "form_id": "frm_abc123def456"
|
|
2553
|
+
* }
|
|
2554
|
+
* ]
|
|
2555
|
+
* },
|
|
2516
2556
|
* "service": {
|
|
2517
2557
|
* "appointment_type": "in_person",
|
|
2518
2558
|
* "booking_policy": {
|
|
@@ -2605,7 +2645,19 @@ interface components {
|
|
|
2605
2645
|
* },
|
|
2606
2646
|
* "status": "slot_selected",
|
|
2607
2647
|
* "submissions": [],
|
|
2608
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
2648
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
2649
|
+
* "workflow": {
|
|
2650
|
+
* "available_steps": [
|
|
2651
|
+
* "booking",
|
|
2652
|
+
* "info",
|
|
2653
|
+
* "form:frm_abc123def456"
|
|
2654
|
+
* ],
|
|
2655
|
+
* "can_change_slot": true,
|
|
2656
|
+
* "can_complete": false,
|
|
2657
|
+
* "defunct_reason": null,
|
|
2658
|
+
* "is_defunct": false,
|
|
2659
|
+
* "resume_step": "info"
|
|
2660
|
+
* }
|
|
2609
2661
|
* },
|
|
2610
2662
|
* "type": "booking_intent.abandoned"
|
|
2611
2663
|
* }
|
|
@@ -2788,6 +2840,41 @@ interface components {
|
|
|
2788
2840
|
*/
|
|
2789
2841
|
type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
|
|
2790
2842
|
};
|
|
2843
|
+
/**
|
|
2844
|
+
* BookingIntentRequirements
|
|
2845
|
+
* @description Per-section completeness status for a booking intent. Provides boolean
|
|
2846
|
+
* signals for whether each section of the booking flow has enough data
|
|
2847
|
+
* to proceed, enabling the frontend to make navigation decisions without
|
|
2848
|
+
* parsing error pointers.
|
|
2849
|
+
* @example {
|
|
2850
|
+
* "booking": {
|
|
2851
|
+
* "complete": true
|
|
2852
|
+
* },
|
|
2853
|
+
* "info": {
|
|
2854
|
+
* "complete": false
|
|
2855
|
+
* },
|
|
2856
|
+
* "submissions": [
|
|
2857
|
+
* {
|
|
2858
|
+
* "complete": false,
|
|
2859
|
+
* "form_id": "frm_abc123def456"
|
|
2860
|
+
* }
|
|
2861
|
+
* ]
|
|
2862
|
+
* }
|
|
2863
|
+
*/
|
|
2864
|
+
BookingIntentRequirements: {
|
|
2865
|
+
/** @description Booking step completeness status. */
|
|
2866
|
+
booking: {
|
|
2867
|
+
/** @description Whether the booking step is complete (provider and slot fields are present). */
|
|
2868
|
+
complete: boolean;
|
|
2869
|
+
};
|
|
2870
|
+
/** @description Info step completeness status. */
|
|
2871
|
+
info: {
|
|
2872
|
+
/** @description Whether the info step is complete (required client fields are present). */
|
|
2873
|
+
complete: boolean;
|
|
2874
|
+
};
|
|
2875
|
+
/** @description Per-form completeness status, in the same order as the service's forms. */
|
|
2876
|
+
submissions: components["schemas"]["SubmissionRequirement"][];
|
|
2877
|
+
};
|
|
2791
2878
|
/**
|
|
2792
2879
|
* ServiceProvider
|
|
2793
2880
|
* @description A service provider
|
|
@@ -3026,6 +3113,20 @@ interface components {
|
|
|
3026
3113
|
* "object": "provider",
|
|
3027
3114
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
3028
3115
|
* },
|
|
3116
|
+
* "requirements": {
|
|
3117
|
+
* "booking": {
|
|
3118
|
+
* "complete": true
|
|
3119
|
+
* },
|
|
3120
|
+
* "info": {
|
|
3121
|
+
* "complete": false
|
|
3122
|
+
* },
|
|
3123
|
+
* "submissions": [
|
|
3124
|
+
* {
|
|
3125
|
+
* "complete": false,
|
|
3126
|
+
* "form_id": "frm_abc123def456"
|
|
3127
|
+
* }
|
|
3128
|
+
* ]
|
|
3129
|
+
* },
|
|
3029
3130
|
* "service": {
|
|
3030
3131
|
* "appointment_type": "in_person",
|
|
3031
3132
|
* "booking_policy": {
|
|
@@ -3118,7 +3219,19 @@ interface components {
|
|
|
3118
3219
|
* },
|
|
3119
3220
|
* "status": "slot_selected",
|
|
3120
3221
|
* "submissions": [],
|
|
3121
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
3222
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
3223
|
+
* "workflow": {
|
|
3224
|
+
* "available_steps": [
|
|
3225
|
+
* "booking",
|
|
3226
|
+
* "info",
|
|
3227
|
+
* "form:frm_abc123def456"
|
|
3228
|
+
* ],
|
|
3229
|
+
* "can_change_slot": true,
|
|
3230
|
+
* "can_complete": false,
|
|
3231
|
+
* "defunct_reason": null,
|
|
3232
|
+
* "is_defunct": false,
|
|
3233
|
+
* "resume_step": "info"
|
|
3234
|
+
* }
|
|
3122
3235
|
* },
|
|
3123
3236
|
* "type": "booking_intent.updated"
|
|
3124
3237
|
* }
|
|
@@ -3449,6 +3562,20 @@ interface components {
|
|
|
3449
3562
|
* "object": "provider",
|
|
3450
3563
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
3451
3564
|
* },
|
|
3565
|
+
* "requirements": {
|
|
3566
|
+
* "booking": {
|
|
3567
|
+
* "complete": true
|
|
3568
|
+
* },
|
|
3569
|
+
* "info": {
|
|
3570
|
+
* "complete": false
|
|
3571
|
+
* },
|
|
3572
|
+
* "submissions": [
|
|
3573
|
+
* {
|
|
3574
|
+
* "complete": false,
|
|
3575
|
+
* "form_id": "frm_abc123def456"
|
|
3576
|
+
* }
|
|
3577
|
+
* ]
|
|
3578
|
+
* },
|
|
3452
3579
|
* "service": {
|
|
3453
3580
|
* "appointment_type": "in_person",
|
|
3454
3581
|
* "booking_policy": {
|
|
@@ -3541,7 +3668,19 @@ interface components {
|
|
|
3541
3668
|
* },
|
|
3542
3669
|
* "status": "slot_selected",
|
|
3543
3670
|
* "submissions": [],
|
|
3544
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
3671
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
3672
|
+
* "workflow": {
|
|
3673
|
+
* "available_steps": [
|
|
3674
|
+
* "booking",
|
|
3675
|
+
* "info",
|
|
3676
|
+
* "form:frm_abc123def456"
|
|
3677
|
+
* ],
|
|
3678
|
+
* "can_change_slot": true,
|
|
3679
|
+
* "can_complete": false,
|
|
3680
|
+
* "defunct_reason": null,
|
|
3681
|
+
* "is_defunct": false,
|
|
3682
|
+
* "resume_step": "info"
|
|
3683
|
+
* }
|
|
3545
3684
|
* }
|
|
3546
3685
|
* ],
|
|
3547
3686
|
* "meta": {
|
|
@@ -3789,6 +3928,20 @@ interface components {
|
|
|
3789
3928
|
* "object": "provider",
|
|
3790
3929
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
3791
3930
|
* },
|
|
3931
|
+
* "requirements": {
|
|
3932
|
+
* "booking": {
|
|
3933
|
+
* "complete": true
|
|
3934
|
+
* },
|
|
3935
|
+
* "info": {
|
|
3936
|
+
* "complete": false
|
|
3937
|
+
* },
|
|
3938
|
+
* "submissions": [
|
|
3939
|
+
* {
|
|
3940
|
+
* "complete": false,
|
|
3941
|
+
* "form_id": "frm_abc123def456"
|
|
3942
|
+
* }
|
|
3943
|
+
* ]
|
|
3944
|
+
* },
|
|
3792
3945
|
* "service": {
|
|
3793
3946
|
* "appointment_type": "in_person",
|
|
3794
3947
|
* "booking_policy": {
|
|
@@ -3881,7 +4034,19 @@ interface components {
|
|
|
3881
4034
|
* },
|
|
3882
4035
|
* "status": "slot_selected",
|
|
3883
4036
|
* "submissions": [],
|
|
3884
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
4037
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
4038
|
+
* "workflow": {
|
|
4039
|
+
* "available_steps": [
|
|
4040
|
+
* "booking",
|
|
4041
|
+
* "info",
|
|
4042
|
+
* "form:frm_abc123def456"
|
|
4043
|
+
* ],
|
|
4044
|
+
* "can_change_slot": true,
|
|
4045
|
+
* "can_complete": false,
|
|
4046
|
+
* "defunct_reason": null,
|
|
4047
|
+
* "is_defunct": false,
|
|
4048
|
+
* "resume_step": "info"
|
|
4049
|
+
* }
|
|
3885
4050
|
* },
|
|
3886
4051
|
* "type": "booking_intent.created"
|
|
3887
4052
|
* }
|
|
@@ -3930,7 +4095,7 @@ interface components {
|
|
|
3930
4095
|
* IntentSubmissionInput
|
|
3931
4096
|
* @description A form submission entry containing a form ID and response data.
|
|
3932
4097
|
* @example {
|
|
3933
|
-
* "form_id": "
|
|
4098
|
+
* "form_id": "frm_abc123def456",
|
|
3934
4099
|
* "responses": {
|
|
3935
4100
|
* "color": [
|
|
3936
4101
|
* "opt_abc"
|
|
@@ -5275,8 +5440,8 @@ interface components {
|
|
|
5275
5440
|
* @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
|
|
5276
5441
|
*/
|
|
5277
5442
|
end_at?: string | null;
|
|
5278
|
-
/** @description Fields to lock from public API updates.
|
|
5279
|
-
locked_fields?:
|
|
5443
|
+
/** @description Fields to lock from public API updates. Replaces existing locked_fields entirely. */
|
|
5444
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
5280
5445
|
/** @description Custom metadata key-value pairs. Replaces existing metadata entirely. */
|
|
5281
5446
|
metadata?: {
|
|
5282
5447
|
[key: string]: unknown;
|
|
@@ -7204,6 +7369,20 @@ interface components {
|
|
|
7204
7369
|
* "id": "bi_abc123def456abc123def456",
|
|
7205
7370
|
* "locked_fields": [],
|
|
7206
7371
|
* "object": "public_booking_intent",
|
|
7372
|
+
* "requirements": {
|
|
7373
|
+
* "booking": {
|
|
7374
|
+
* "complete": true
|
|
7375
|
+
* },
|
|
7376
|
+
* "info": {
|
|
7377
|
+
* "complete": false
|
|
7378
|
+
* },
|
|
7379
|
+
* "submissions": [
|
|
7380
|
+
* {
|
|
7381
|
+
* "complete": false,
|
|
7382
|
+
* "form_id": "frm_abc123def456"
|
|
7383
|
+
* }
|
|
7384
|
+
* ]
|
|
7385
|
+
* },
|
|
7207
7386
|
* "start_at": {
|
|
7208
7387
|
* "local": "2026-02-23T10:00:00-05:00",
|
|
7209
7388
|
* "object": "zoned_date_time",
|
|
@@ -7211,7 +7390,19 @@ interface components {
|
|
|
7211
7390
|
* "unix_ts": 1771945200,
|
|
7212
7391
|
* "utc": "2026-02-23T15:00:00Z"
|
|
7213
7392
|
* },
|
|
7214
|
-
* "status": "slot_selected"
|
|
7393
|
+
* "status": "slot_selected",
|
|
7394
|
+
* "workflow": {
|
|
7395
|
+
* "available_steps": [
|
|
7396
|
+
* "booking",
|
|
7397
|
+
* "info",
|
|
7398
|
+
* "form:frm_abc123def456"
|
|
7399
|
+
* ],
|
|
7400
|
+
* "can_change_slot": true,
|
|
7401
|
+
* "can_complete": false,
|
|
7402
|
+
* "defunct_reason": null,
|
|
7403
|
+
* "is_defunct": false,
|
|
7404
|
+
* "resume_step": "info"
|
|
7405
|
+
* }
|
|
7215
7406
|
* }
|
|
7216
7407
|
*/
|
|
7217
7408
|
PublicBookingIntent: {
|
|
@@ -7228,20 +7419,22 @@ interface components {
|
|
|
7228
7419
|
hold_until?: string | null;
|
|
7229
7420
|
/** @description The booking intent ID */
|
|
7230
7421
|
id: string;
|
|
7231
|
-
/** @description Fields that are locked and cannot be updated via the public API.
|
|
7232
|
-
locked_fields?:
|
|
7422
|
+
/** @description Fields that are locked and cannot be updated via the public API. */
|
|
7423
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[];
|
|
7233
7424
|
/**
|
|
7234
7425
|
* @description The object type
|
|
7235
7426
|
* @enum {string}
|
|
7236
7427
|
*/
|
|
7237
7428
|
object: "public_booking_intent";
|
|
7429
|
+
requirements?: components["schemas"]["BookingIntentRequirements"];
|
|
7238
7430
|
/** @description The start time of the selected slot */
|
|
7239
7431
|
start_at?: components["schemas"]["ZonedDateTime"] | null;
|
|
7240
7432
|
/**
|
|
7241
|
-
* @description The current status of the booking intent
|
|
7433
|
+
* @description The current status of the booking intent. Automatically transitions from pending to slot_selected when provider_id, start_at, end_at, and time_zone are all present (on create or update).
|
|
7242
7434
|
* @enum {string}
|
|
7243
7435
|
*/
|
|
7244
7436
|
status: "pending" | "slot_selected" | "completed" | "abandoned";
|
|
7437
|
+
workflow?: components["schemas"]["BookingIntentWorkflow"];
|
|
7245
7438
|
};
|
|
7246
7439
|
/**
|
|
7247
7440
|
* ServiceForm
|
|
@@ -7723,6 +7916,20 @@ interface components {
|
|
|
7723
7916
|
*/
|
|
7724
7917
|
type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
|
|
7725
7918
|
};
|
|
7919
|
+
/**
|
|
7920
|
+
* SubmissionRequirement
|
|
7921
|
+
* @description Completeness status for a single form submission.
|
|
7922
|
+
* @example {
|
|
7923
|
+
* "complete": false,
|
|
7924
|
+
* "form_id": "frm_abc123def456"
|
|
7925
|
+
* }
|
|
7926
|
+
*/
|
|
7927
|
+
SubmissionRequirement: {
|
|
7928
|
+
/** @description Whether the submission exists and all required fields have been answered. */
|
|
7929
|
+
complete: boolean;
|
|
7930
|
+
/** @description The form's object ID. */
|
|
7931
|
+
form_id: string;
|
|
7932
|
+
};
|
|
7726
7933
|
/**
|
|
7727
7934
|
* PublicBookingIntentResponse
|
|
7728
7935
|
* @description Response schema for a single booking intent via a public interface.
|
|
@@ -7741,6 +7948,20 @@ interface components {
|
|
|
7741
7948
|
* "id": "bi_abc123def456abc123def456",
|
|
7742
7949
|
* "locked_fields": [],
|
|
7743
7950
|
* "object": "public_booking_intent",
|
|
7951
|
+
* "requirements": {
|
|
7952
|
+
* "booking": {
|
|
7953
|
+
* "complete": true
|
|
7954
|
+
* },
|
|
7955
|
+
* "info": {
|
|
7956
|
+
* "complete": false
|
|
7957
|
+
* },
|
|
7958
|
+
* "submissions": [
|
|
7959
|
+
* {
|
|
7960
|
+
* "complete": false,
|
|
7961
|
+
* "form_id": "frm_abc123def456"
|
|
7962
|
+
* }
|
|
7963
|
+
* ]
|
|
7964
|
+
* },
|
|
7744
7965
|
* "start_at": {
|
|
7745
7966
|
* "local": "2026-02-23T10:00:00-05:00",
|
|
7746
7967
|
* "object": "zoned_date_time",
|
|
@@ -7748,7 +7969,19 @@ interface components {
|
|
|
7748
7969
|
* "unix_ts": 1771945200,
|
|
7749
7970
|
* "utc": "2026-02-23T15:00:00Z"
|
|
7750
7971
|
* },
|
|
7751
|
-
* "status": "slot_selected"
|
|
7972
|
+
* "status": "slot_selected",
|
|
7973
|
+
* "workflow": {
|
|
7974
|
+
* "available_steps": [
|
|
7975
|
+
* "booking",
|
|
7976
|
+
* "info",
|
|
7977
|
+
* "form:frm_abc123def456"
|
|
7978
|
+
* ],
|
|
7979
|
+
* "can_change_slot": true,
|
|
7980
|
+
* "can_complete": false,
|
|
7981
|
+
* "defunct_reason": null,
|
|
7982
|
+
* "is_defunct": false,
|
|
7983
|
+
* "resume_step": "info"
|
|
7984
|
+
* }
|
|
7752
7985
|
* }
|
|
7753
7986
|
* }
|
|
7754
7987
|
*/
|
|
@@ -8396,6 +8629,20 @@ interface components {
|
|
|
8396
8629
|
* "object": "provider",
|
|
8397
8630
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
8398
8631
|
* },
|
|
8632
|
+
* "requirements": {
|
|
8633
|
+
* "booking": {
|
|
8634
|
+
* "complete": true
|
|
8635
|
+
* },
|
|
8636
|
+
* "info": {
|
|
8637
|
+
* "complete": false
|
|
8638
|
+
* },
|
|
8639
|
+
* "submissions": [
|
|
8640
|
+
* {
|
|
8641
|
+
* "complete": false,
|
|
8642
|
+
* "form_id": "frm_abc123def456"
|
|
8643
|
+
* }
|
|
8644
|
+
* ]
|
|
8645
|
+
* },
|
|
8399
8646
|
* "service": {
|
|
8400
8647
|
* "appointment_type": "in_person",
|
|
8401
8648
|
* "booking_policy": {
|
|
@@ -8488,7 +8735,19 @@ interface components {
|
|
|
8488
8735
|
* },
|
|
8489
8736
|
* "status": "slot_selected",
|
|
8490
8737
|
* "submissions": [],
|
|
8491
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
8738
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
8739
|
+
* "workflow": {
|
|
8740
|
+
* "available_steps": [
|
|
8741
|
+
* "booking",
|
|
8742
|
+
* "info",
|
|
8743
|
+
* "form:frm_abc123def456"
|
|
8744
|
+
* ],
|
|
8745
|
+
* "can_change_slot": true,
|
|
8746
|
+
* "can_complete": false,
|
|
8747
|
+
* "defunct_reason": null,
|
|
8748
|
+
* "is_defunct": false,
|
|
8749
|
+
* "resume_step": "info"
|
|
8750
|
+
* }
|
|
8492
8751
|
* }
|
|
8493
8752
|
* }
|
|
8494
8753
|
*/
|
|
@@ -9388,6 +9647,41 @@ interface components {
|
|
|
9388
9647
|
reschedule: string[];
|
|
9389
9648
|
};
|
|
9390
9649
|
};
|
|
9650
|
+
/**
|
|
9651
|
+
* BookingIntentWorkflow
|
|
9652
|
+
* @description Server-computed workflow state for a booking intent. Provides step routing,
|
|
9653
|
+
* completability, and defunct state so the frontend can render the correct
|
|
9654
|
+
* booking flow without inferring these from raw fields.
|
|
9655
|
+
* @example {
|
|
9656
|
+
* "available_steps": [
|
|
9657
|
+
* "booking",
|
|
9658
|
+
* "info",
|
|
9659
|
+
* "form:frm_abc123def456"
|
|
9660
|
+
* ],
|
|
9661
|
+
* "can_change_slot": true,
|
|
9662
|
+
* "can_complete": false,
|
|
9663
|
+
* "defunct_reason": null,
|
|
9664
|
+
* "is_defunct": false,
|
|
9665
|
+
* "resume_step": "info"
|
|
9666
|
+
* }
|
|
9667
|
+
*/
|
|
9668
|
+
BookingIntentWorkflow: {
|
|
9669
|
+
/** @description Ordered list of steps the user can visit. Computed from service forms and locked_fields. */
|
|
9670
|
+
available_steps: string[];
|
|
9671
|
+
/** @description Whether slot fields (start_at, end_at, time_zone) are unlocked and can be modified. */
|
|
9672
|
+
can_change_slot: boolean;
|
|
9673
|
+
/** @description Whether the intent has enough valid data to submit right now. When true, calling the complete endpoint will succeed regardless of whether the current status is pending or slot_selected. */
|
|
9674
|
+
can_complete: boolean;
|
|
9675
|
+
/**
|
|
9676
|
+
* @description Why the intent is defunct. Null when not defunct.
|
|
9677
|
+
* @enum {string|null}
|
|
9678
|
+
*/
|
|
9679
|
+
defunct_reason?: "abandoned" | "no_available_steps" | "status_invalid" | null;
|
|
9680
|
+
/** @description Whether the intent is in an unrecoverable state and should render a terminal UI. */
|
|
9681
|
+
is_defunct: boolean;
|
|
9682
|
+
/** @description The step the UI should show on load or resume. One of: booking, info, form:<form_id>, confirmed, defunct. */
|
|
9683
|
+
resume_step: string;
|
|
9684
|
+
};
|
|
9391
9685
|
/**
|
|
9392
9686
|
* ProviderDeactivatedEventData
|
|
9393
9687
|
* @description This is an object representing data for the provider deactivated event.
|
|
@@ -9828,6 +10122,20 @@ interface components {
|
|
|
9828
10122
|
* "object": "provider",
|
|
9829
10123
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
9830
10124
|
* },
|
|
10125
|
+
* "requirements": {
|
|
10126
|
+
* "booking": {
|
|
10127
|
+
* "complete": true
|
|
10128
|
+
* },
|
|
10129
|
+
* "info": {
|
|
10130
|
+
* "complete": false
|
|
10131
|
+
* },
|
|
10132
|
+
* "submissions": [
|
|
10133
|
+
* {
|
|
10134
|
+
* "complete": false,
|
|
10135
|
+
* "form_id": "frm_abc123def456"
|
|
10136
|
+
* }
|
|
10137
|
+
* ]
|
|
10138
|
+
* },
|
|
9831
10139
|
* "service": {
|
|
9832
10140
|
* "appointment_type": "in_person",
|
|
9833
10141
|
* "booking_policy": {
|
|
@@ -9920,7 +10228,19 @@ interface components {
|
|
|
9920
10228
|
* },
|
|
9921
10229
|
* "status": "slot_selected",
|
|
9922
10230
|
* "submissions": [],
|
|
9923
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
10231
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
10232
|
+
* "workflow": {
|
|
10233
|
+
* "available_steps": [
|
|
10234
|
+
* "booking",
|
|
10235
|
+
* "info",
|
|
10236
|
+
* "form:frm_abc123def456"
|
|
10237
|
+
* ],
|
|
10238
|
+
* "can_change_slot": true,
|
|
10239
|
+
* "can_complete": false,
|
|
10240
|
+
* "defunct_reason": null,
|
|
10241
|
+
* "is_defunct": false,
|
|
10242
|
+
* "resume_step": "info"
|
|
10243
|
+
* }
|
|
9924
10244
|
* }
|
|
9925
10245
|
*/
|
|
9926
10246
|
BookingIntent: {
|
|
@@ -9965,8 +10285,8 @@ interface components {
|
|
|
9965
10285
|
hold_until?: string | null;
|
|
9966
10286
|
/** @description The booking intent ID */
|
|
9967
10287
|
id: string;
|
|
9968
|
-
/** @description Fields that are locked and cannot be updated via the public API.
|
|
9969
|
-
locked_fields?:
|
|
10288
|
+
/** @description Fields that are locked and cannot be updated via the public API. */
|
|
10289
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[];
|
|
9970
10290
|
/** @description Custom metadata key-value pairs */
|
|
9971
10291
|
metadata?: {
|
|
9972
10292
|
[key: string]: unknown;
|
|
@@ -9978,6 +10298,8 @@ interface components {
|
|
|
9978
10298
|
object: "booking_intent";
|
|
9979
10299
|
/** @description The assigned provider */
|
|
9980
10300
|
provider?: components["schemas"]["Provider"] | null;
|
|
10301
|
+
/** @description Per-section completeness status. Present on single-intent responses, null on list responses. */
|
|
10302
|
+
requirements?: components["schemas"]["BookingIntentRequirements"] | null;
|
|
9981
10303
|
/** @description The selected service */
|
|
9982
10304
|
service?: components["schemas"]["Service"] | null;
|
|
9983
10305
|
/** @description Whether the slot has been prevalidated. When true, public completion skips slot validation. */
|
|
@@ -9985,7 +10307,7 @@ interface components {
|
|
|
9985
10307
|
/** @description The start time of the selected slot */
|
|
9986
10308
|
start_at?: components["schemas"]["ZonedDateTime"] | null;
|
|
9987
10309
|
/**
|
|
9988
|
-
* @description The current status of the booking intent
|
|
10310
|
+
* @description The current status of the booking intent. Automatically transitions from pending to slot_selected when provider_id, start_at, end_at, and time_zone are all present (on create or update).
|
|
9989
10311
|
* @enum {string}
|
|
9990
10312
|
*/
|
|
9991
10313
|
status: "pending" | "slot_selected" | "completed" | "abandoned";
|
|
@@ -9996,6 +10318,8 @@ interface components {
|
|
|
9996
10318
|
* @description When the intent was last updated
|
|
9997
10319
|
*/
|
|
9998
10320
|
updated_at: string;
|
|
10321
|
+
/** @description Server-computed workflow state. Present on single-intent responses, null on list responses. */
|
|
10322
|
+
workflow?: components["schemas"]["BookingIntentWorkflow"] | null;
|
|
9999
10323
|
};
|
|
10000
10324
|
/**
|
|
10001
10325
|
* CreateServiceRequest
|
|
@@ -15071,9 +15395,11 @@ type BookingIntentAbandonedEventData = Schemas["BookingIntentAbandonedEventData"
|
|
|
15071
15395
|
type BookingIntentBookingPolicy = Schemas["BookingIntentBookingPolicy"];
|
|
15072
15396
|
type BookingIntentCompletedEventData = Schemas["BookingIntentCompletedEventData"];
|
|
15073
15397
|
type BookingIntentCreatedEventData = Schemas["BookingIntentCreatedEventData"];
|
|
15398
|
+
type BookingIntentRequirements = Schemas["BookingIntentRequirements"];
|
|
15074
15399
|
type BookingIntentResponse = Schemas["BookingIntentResponse"];
|
|
15075
15400
|
type BookingIntentsResponse = Schemas["BookingIntentsResponse"];
|
|
15076
15401
|
type BookingIntentUpdatedEventData = Schemas["BookingIntentUpdatedEventData"];
|
|
15402
|
+
type BookingIntentWorkflow = Schemas["BookingIntentWorkflow"];
|
|
15077
15403
|
type BookingPolicy = Schemas["BookingPolicy"];
|
|
15078
15404
|
type CancelAppointmentRequest = Schemas["CancelAppointmentRequest"];
|
|
15079
15405
|
type CancellationEvent = Schemas["CancellationEvent"];
|
|
@@ -15191,6 +15517,7 @@ type ServiceUpdatedEventData = Schemas["ServiceUpdatedEventData"];
|
|
|
15191
15517
|
type Slot = Schemas["Slot"];
|
|
15192
15518
|
type SlotRule = Schemas["SlotRule"];
|
|
15193
15519
|
type SortServiceFormsRequest = Schemas["SortServiceFormsRequest"];
|
|
15520
|
+
type SubmissionRequirement = Schemas["SubmissionRequirement"];
|
|
15194
15521
|
type UnauthorizedResponse = Schemas["UnauthorizedResponse"];
|
|
15195
15522
|
type UpdateAccountRequest = Schemas["UpdateAccountRequest"];
|
|
15196
15523
|
type UpdateAccountUserRequest = Schemas["UpdateAccountUserRequest"];
|
|
@@ -16042,7 +16369,7 @@ declare function createBookingIntent(client: FetchClient, body: RequestBody<"/v1
|
|
|
16042
16369
|
} | null;
|
|
16043
16370
|
client_id?: string | null;
|
|
16044
16371
|
end_at?: string | null;
|
|
16045
|
-
locked_fields?:
|
|
16372
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
16046
16373
|
metadata?: {
|
|
16047
16374
|
[key: string]: unknown;
|
|
16048
16375
|
} | null;
|
|
@@ -19594,7 +19921,7 @@ declare function updateBookingIntent(client: FetchClient, path: PathParams<"/v1/
|
|
|
19594
19921
|
} | null;
|
|
19595
19922
|
client_id?: string | null;
|
|
19596
19923
|
end_at?: string | null;
|
|
19597
|
-
locked_fields?:
|
|
19924
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
19598
19925
|
metadata?: {
|
|
19599
19926
|
[key: string]: unknown;
|
|
19600
19927
|
} | null;
|
|
@@ -20186,4 +20513,4 @@ declare function updateService(client: FetchClient, path: PathParams<"/v1/servic
|
|
|
20186
20513
|
};
|
|
20187
20514
|
}, `${string}/${string}`>>;
|
|
20188
20515
|
|
|
20189
|
-
export { type Account, type AccountEvent, type AccountResponse, type AccountUser, type AccountUserCreatedEventData, type AccountUserDeletedEventData, type AccountUserResponse, type AccountUserUpdatedEventData, type AccountUsersResponse, type AccountsResponse, type AdvanceNoticePolicy, type AggregatedSlot, type Appointment, type AppointmentCanceledEventData, type AppointmentConfirmedEventData, type AppointmentCreatedEventData, type AppointmentDeletedEventData, type AppointmentRescheduledEventData, type AppointmentResponse, type AppointmentsResponse, type AttachServiceFormRequest, type Block, type BlockCreatedEventData, type BlockDeletedEventData, type BlockResponse, type BlockUpdatedEventData, type BlocksResponse, type BookingIntent, type BookingIntentAbandonedEventData, type BookingIntentBookingPolicy, type BookingIntentCompletedEventData, type BookingIntentCreatedEventData, type BookingIntentResponse, type BookingIntentUpdatedEventData, type BookingIntentsResponse, type BookingPolicy, type CancelAppointmentRequest, type CancelPublicAppointmentRequest, type CancellationEvent, type CancellationPolicy, type CancellationReason, type CancellationReasonResponse, type CancellationReasonsResponse, type Client, type ClientCreatedEventData, type ClientDeletedEventData, type ClientField, type ClientFieldChoice, type ClientFieldOptions, type ClientFieldResponse, type ClientFieldsResponse, type ClientResponse, type ClientUpdatedEventData, type ClientsResponse, type CompleteBookingIntentRequest, type CompletePublicBookingIntentRequest, type ConfirmAppointmentRequest, type ConfirmationEvent, type ConnectedAccount, type ConnectedAccountCreatedEventData, type ConnectedAccountDeletedEventData, type ConnectedAccountReconnectedEventData, type ConnectedAccountRefreshFailedEventData, type ConnectedAccountResponse, type ConnectedAccountsResponse, type CreateAccountRequest, type CreateAccountUserRequest, type CreateAppointmentRequest, type CreateBlockRequest, type CreateBookingIntentRequest, type CreateCancellationReasonRequest, type CreateClientFieldRequest, type CreateClientRequest, type CreateDashboardSessionRequest, type CreateFormRequest, type CreateProviderRequest, type CreateProviderScheduleRequest, type CreatePublicAppointmentRequest, type CreatePublicBookingIntentRequest, type CreateServiceProviderRequest, type CreateServiceRequest, type DashboardSession, type DashboardSessionResponse, type FetchClient, type FetchClientOptions, type FieldChoice, type FieldChoiceInput, type FieldOptions, type FieldOptionsInput, type ForbiddenResponse, type Form, type FormDetail, type FormField, type FormFieldInput, type FormResponse, type FormsResponse, type GenericErrorResponse, type HoldPolicy, type IntentSubmissionInput, type JsonError, type JsonErrorResponse, type MaximizeUtilizationPolicy, type NotFoundResponse, type PaginationMeta, type PathParams, type Platform, type PlatformResponse, type Provider, type ProviderCreatedEventData, type ProviderDeactivatedEventData, type ProviderNotificationConfig, type ProviderNotificationType, type ProviderReactivatedEventData, type ProviderResponse, type ProviderSchedule, type ProviderScheduleCreatedEventData, type ProviderScheduleDeletedEventData, type ProviderScheduleResponse, type ProviderScheduleUpdatedEventData, type ProviderSchedulesResponse, type ProviderUpdatedEventData, type ProvidersResponse, type PublicAppointment, type PublicAppointmentResponse, type PublicBookingIntent, type PublicBookingIntentResponse, type PublicCancellationReason, type PublicCancellationReasonsResponse, type PublicServiceEarliestSlotResponse, type PublicServiceSlotsResponse, type QueryParams, type RecurrenceRule, type RequestBody, type RescheduleAppointmentRequest, type RescheduleEvent, type ReschedulePublicAppointmentRequest, type ReschedulingPolicy, type Role, type RolesResponse, type Service, type ServiceCreatedEventData, type ServiceDeletedEventData, type ServiceForm, type ServiceFormResponse, type ServiceFormsResponse, type ServiceProvider, type ServiceProviderCreatedEventData, type ServiceProviderDeletedEventData, type ServiceProviderResponse, type ServiceProvidersResponse, type ServiceResponse, type ServiceSlotResponse, type ServiceUpdatedEventData, type ServicesResponse, type Slot, type SlotRule, type SortServiceFormsRequest, type UnauthorizedResponse, type UpdateAccountRequest, type UpdateAccountUserRequest, type UpdateBlockRequest, type UpdateBookingIntentRequest, type UpdateCancellationReasonRequest, type UpdateClientFieldRequest, type UpdateClientRequest, type UpdateConnectedAccountRequest, type UpdateFormRequest, type UpdateProviderRequest, type UpdateProviderScheduleRequest, type UpdatePublicBookingIntentRequest, type UpdateServiceRequest, type User, type WeeklyRule, type ZonedDateTime, abandonBookingIntent, abandonPublicBookingIntent, attachServiceForm, cancelAppointment, cancelPublicAppointment, completeBookingIntent, completePublicBookingIntent, confirmAppointment, createAccount, createAccountUser, createAppointment, createBlock, createBookingIntent, createCancellationReason, createClient, createClientField, createDashboardSession, createFetchClient, createForm, createProvider, createProviderSchedule, createPublicAppointment, createPublicBookingIntent, createService, createServiceProvider, deactivateProvider, deleteBlock, deleteCancellationReason, deleteClient, deleteClientField, deleteConnectedAccount, deleteForm, deleteProviderSchedule, deleteService, deleteServiceProvider, detachServiceForm, getAccountById, getAppointment, getBlock, getBookingIntent, getCancellationReason, getClient, getClientField, getConnectedAccount, getCurrentAccount, getCurrentAccountUser, getCurrentPlatform, getEarliestPublicServiceSlot, getForm, getProvider, getProviderSchedule, getPublicAppointment, getPublicBookingIntent, getService, listAccountUsers, listAccounts, listAppointments, listBlocks, listBookingIntents, listCancellationReasons, listClientFields, listClients, listConnectedAccounts, listForms, listProviderSchedules, listProviders, listPublicCancellationReasons, listPublicServiceSlots, listRoles, listServiceForms, listServiceProviders, listServiceSlots, listServices, type paths, rescheduleAppointment, reschedulePublicAppointment, sortServiceForms, updateAccount, updateAccountUser, updateBlock, updateBookingIntent, updateCancellationReason, updateClient, updateClientField, updateConnectedAccount, updateForm, updateProvider, updateProviderSchedule, updatePublicBookingIntent, updateService };
|
|
20516
|
+
export { type Account, type AccountEvent, type AccountResponse, type AccountUser, type AccountUserCreatedEventData, type AccountUserDeletedEventData, type AccountUserResponse, type AccountUserUpdatedEventData, type AccountUsersResponse, type AccountsResponse, type AdvanceNoticePolicy, type AggregatedSlot, type Appointment, type AppointmentCanceledEventData, type AppointmentConfirmedEventData, type AppointmentCreatedEventData, type AppointmentDeletedEventData, type AppointmentRescheduledEventData, type AppointmentResponse, type AppointmentsResponse, type AttachServiceFormRequest, type Block, type BlockCreatedEventData, type BlockDeletedEventData, type BlockResponse, type BlockUpdatedEventData, type BlocksResponse, type BookingIntent, type BookingIntentAbandonedEventData, type BookingIntentBookingPolicy, type BookingIntentCompletedEventData, type BookingIntentCreatedEventData, type BookingIntentRequirements, type BookingIntentResponse, type BookingIntentUpdatedEventData, type BookingIntentWorkflow, type BookingIntentsResponse, type BookingPolicy, type CancelAppointmentRequest, type CancelPublicAppointmentRequest, type CancellationEvent, type CancellationPolicy, type CancellationReason, type CancellationReasonResponse, type CancellationReasonsResponse, type Client, type ClientCreatedEventData, type ClientDeletedEventData, type ClientField, type ClientFieldChoice, type ClientFieldOptions, type ClientFieldResponse, type ClientFieldsResponse, type ClientResponse, type ClientUpdatedEventData, type ClientsResponse, type CompleteBookingIntentRequest, type CompletePublicBookingIntentRequest, type ConfirmAppointmentRequest, type ConfirmationEvent, type ConnectedAccount, type ConnectedAccountCreatedEventData, type ConnectedAccountDeletedEventData, type ConnectedAccountReconnectedEventData, type ConnectedAccountRefreshFailedEventData, type ConnectedAccountResponse, type ConnectedAccountsResponse, type CreateAccountRequest, type CreateAccountUserRequest, type CreateAppointmentRequest, type CreateBlockRequest, type CreateBookingIntentRequest, type CreateCancellationReasonRequest, type CreateClientFieldRequest, type CreateClientRequest, type CreateDashboardSessionRequest, type CreateFormRequest, type CreateProviderRequest, type CreateProviderScheduleRequest, type CreatePublicAppointmentRequest, type CreatePublicBookingIntentRequest, type CreateServiceProviderRequest, type CreateServiceRequest, type DashboardSession, type DashboardSessionResponse, type FetchClient, type FetchClientOptions, type FieldChoice, type FieldChoiceInput, type FieldOptions, type FieldOptionsInput, type ForbiddenResponse, type Form, type FormDetail, type FormField, type FormFieldInput, type FormResponse, type FormsResponse, type GenericErrorResponse, type HoldPolicy, type IntentSubmissionInput, type JsonError, type JsonErrorResponse, type MaximizeUtilizationPolicy, type NotFoundResponse, type PaginationMeta, type PathParams, type Platform, type PlatformResponse, type Provider, type ProviderCreatedEventData, type ProviderDeactivatedEventData, type ProviderNotificationConfig, type ProviderNotificationType, type ProviderReactivatedEventData, type ProviderResponse, type ProviderSchedule, type ProviderScheduleCreatedEventData, type ProviderScheduleDeletedEventData, type ProviderScheduleResponse, type ProviderScheduleUpdatedEventData, type ProviderSchedulesResponse, type ProviderUpdatedEventData, type ProvidersResponse, type PublicAppointment, type PublicAppointmentResponse, type PublicBookingIntent, type PublicBookingIntentResponse, type PublicCancellationReason, type PublicCancellationReasonsResponse, type PublicServiceEarliestSlotResponse, type PublicServiceSlotsResponse, type QueryParams, type RecurrenceRule, type RequestBody, type RescheduleAppointmentRequest, type RescheduleEvent, type ReschedulePublicAppointmentRequest, type ReschedulingPolicy, type Role, type RolesResponse, type Service, type ServiceCreatedEventData, type ServiceDeletedEventData, type ServiceForm, type ServiceFormResponse, type ServiceFormsResponse, type ServiceProvider, type ServiceProviderCreatedEventData, type ServiceProviderDeletedEventData, type ServiceProviderResponse, type ServiceProvidersResponse, type ServiceResponse, type ServiceSlotResponse, type ServiceUpdatedEventData, type ServicesResponse, type Slot, type SlotRule, type SortServiceFormsRequest, type SubmissionRequirement, type UnauthorizedResponse, type UpdateAccountRequest, type UpdateAccountUserRequest, type UpdateBlockRequest, type UpdateBookingIntentRequest, type UpdateCancellationReasonRequest, type UpdateClientFieldRequest, type UpdateClientRequest, type UpdateConnectedAccountRequest, type UpdateFormRequest, type UpdateProviderRequest, type UpdateProviderScheduleRequest, type UpdatePublicBookingIntentRequest, type UpdateServiceRequest, type User, type WeeklyRule, type ZonedDateTime, abandonBookingIntent, abandonPublicBookingIntent, attachServiceForm, cancelAppointment, cancelPublicAppointment, completeBookingIntent, completePublicBookingIntent, confirmAppointment, createAccount, createAccountUser, createAppointment, createBlock, createBookingIntent, createCancellationReason, createClient, createClientField, createDashboardSession, createFetchClient, createForm, createProvider, createProviderSchedule, createPublicAppointment, createPublicBookingIntent, createService, createServiceProvider, deactivateProvider, deleteBlock, deleteCancellationReason, deleteClient, deleteClientField, deleteConnectedAccount, deleteForm, deleteProviderSchedule, deleteService, deleteServiceProvider, detachServiceForm, getAccountById, getAppointment, getBlock, getBookingIntent, getCancellationReason, getClient, getClientField, getConnectedAccount, getCurrentAccount, getCurrentAccountUser, getCurrentPlatform, getEarliestPublicServiceSlot, getForm, getProvider, getProviderSchedule, getPublicAppointment, getPublicBookingIntent, getService, listAccountUsers, listAccounts, listAppointments, listBlocks, listBookingIntents, listCancellationReasons, listClientFields, listClients, listConnectedAccounts, listForms, listProviderSchedules, listProviders, listPublicCancellationReasons, listPublicServiceSlots, listRoles, listServiceForms, listServiceProviders, listServiceSlots, listServices, type paths, rescheduleAppointment, reschedulePublicAppointment, sortServiceForms, updateAccount, updateAccountUser, updateBlock, updateBookingIntent, updateCancellationReason, updateClient, updateClientField, updateConnectedAccount, updateForm, updateProvider, updateProviderSchedule, updatePublicBookingIntent, updateService };
|
package/dist/index.d.ts
CHANGED
|
@@ -2206,6 +2206,20 @@ interface components {
|
|
|
2206
2206
|
* "object": "provider",
|
|
2207
2207
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
2208
2208
|
* },
|
|
2209
|
+
* "requirements": {
|
|
2210
|
+
* "booking": {
|
|
2211
|
+
* "complete": true
|
|
2212
|
+
* },
|
|
2213
|
+
* "info": {
|
|
2214
|
+
* "complete": false
|
|
2215
|
+
* },
|
|
2216
|
+
* "submissions": [
|
|
2217
|
+
* {
|
|
2218
|
+
* "complete": false,
|
|
2219
|
+
* "form_id": "frm_abc123def456"
|
|
2220
|
+
* }
|
|
2221
|
+
* ]
|
|
2222
|
+
* },
|
|
2209
2223
|
* "service": {
|
|
2210
2224
|
* "appointment_type": "in_person",
|
|
2211
2225
|
* "booking_policy": {
|
|
@@ -2298,7 +2312,19 @@ interface components {
|
|
|
2298
2312
|
* },
|
|
2299
2313
|
* "status": "slot_selected",
|
|
2300
2314
|
* "submissions": [],
|
|
2301
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
2315
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
2316
|
+
* "workflow": {
|
|
2317
|
+
* "available_steps": [
|
|
2318
|
+
* "booking",
|
|
2319
|
+
* "info",
|
|
2320
|
+
* "form:frm_abc123def456"
|
|
2321
|
+
* ],
|
|
2322
|
+
* "can_change_slot": true,
|
|
2323
|
+
* "can_complete": false,
|
|
2324
|
+
* "defunct_reason": null,
|
|
2325
|
+
* "is_defunct": false,
|
|
2326
|
+
* "resume_step": "info"
|
|
2327
|
+
* }
|
|
2302
2328
|
* },
|
|
2303
2329
|
* "type": "booking_intent.completed"
|
|
2304
2330
|
* }
|
|
@@ -2431,8 +2457,8 @@ interface components {
|
|
|
2431
2457
|
* @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
|
|
2432
2458
|
*/
|
|
2433
2459
|
end_at?: string | null;
|
|
2434
|
-
/** @description Fields to lock from public API updates.
|
|
2435
|
-
locked_fields?:
|
|
2460
|
+
/** @description Fields to lock from public API updates. */
|
|
2461
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
2436
2462
|
/** @description Custom metadata key-value pairs. */
|
|
2437
2463
|
metadata?: {
|
|
2438
2464
|
[key: string]: unknown;
|
|
@@ -2513,6 +2539,20 @@ interface components {
|
|
|
2513
2539
|
* "object": "provider",
|
|
2514
2540
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
2515
2541
|
* },
|
|
2542
|
+
* "requirements": {
|
|
2543
|
+
* "booking": {
|
|
2544
|
+
* "complete": true
|
|
2545
|
+
* },
|
|
2546
|
+
* "info": {
|
|
2547
|
+
* "complete": false
|
|
2548
|
+
* },
|
|
2549
|
+
* "submissions": [
|
|
2550
|
+
* {
|
|
2551
|
+
* "complete": false,
|
|
2552
|
+
* "form_id": "frm_abc123def456"
|
|
2553
|
+
* }
|
|
2554
|
+
* ]
|
|
2555
|
+
* },
|
|
2516
2556
|
* "service": {
|
|
2517
2557
|
* "appointment_type": "in_person",
|
|
2518
2558
|
* "booking_policy": {
|
|
@@ -2605,7 +2645,19 @@ interface components {
|
|
|
2605
2645
|
* },
|
|
2606
2646
|
* "status": "slot_selected",
|
|
2607
2647
|
* "submissions": [],
|
|
2608
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
2648
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
2649
|
+
* "workflow": {
|
|
2650
|
+
* "available_steps": [
|
|
2651
|
+
* "booking",
|
|
2652
|
+
* "info",
|
|
2653
|
+
* "form:frm_abc123def456"
|
|
2654
|
+
* ],
|
|
2655
|
+
* "can_change_slot": true,
|
|
2656
|
+
* "can_complete": false,
|
|
2657
|
+
* "defunct_reason": null,
|
|
2658
|
+
* "is_defunct": false,
|
|
2659
|
+
* "resume_step": "info"
|
|
2660
|
+
* }
|
|
2609
2661
|
* },
|
|
2610
2662
|
* "type": "booking_intent.abandoned"
|
|
2611
2663
|
* }
|
|
@@ -2788,6 +2840,41 @@ interface components {
|
|
|
2788
2840
|
*/
|
|
2789
2841
|
type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
|
|
2790
2842
|
};
|
|
2843
|
+
/**
|
|
2844
|
+
* BookingIntentRequirements
|
|
2845
|
+
* @description Per-section completeness status for a booking intent. Provides boolean
|
|
2846
|
+
* signals for whether each section of the booking flow has enough data
|
|
2847
|
+
* to proceed, enabling the frontend to make navigation decisions without
|
|
2848
|
+
* parsing error pointers.
|
|
2849
|
+
* @example {
|
|
2850
|
+
* "booking": {
|
|
2851
|
+
* "complete": true
|
|
2852
|
+
* },
|
|
2853
|
+
* "info": {
|
|
2854
|
+
* "complete": false
|
|
2855
|
+
* },
|
|
2856
|
+
* "submissions": [
|
|
2857
|
+
* {
|
|
2858
|
+
* "complete": false,
|
|
2859
|
+
* "form_id": "frm_abc123def456"
|
|
2860
|
+
* }
|
|
2861
|
+
* ]
|
|
2862
|
+
* }
|
|
2863
|
+
*/
|
|
2864
|
+
BookingIntentRequirements: {
|
|
2865
|
+
/** @description Booking step completeness status. */
|
|
2866
|
+
booking: {
|
|
2867
|
+
/** @description Whether the booking step is complete (provider and slot fields are present). */
|
|
2868
|
+
complete: boolean;
|
|
2869
|
+
};
|
|
2870
|
+
/** @description Info step completeness status. */
|
|
2871
|
+
info: {
|
|
2872
|
+
/** @description Whether the info step is complete (required client fields are present). */
|
|
2873
|
+
complete: boolean;
|
|
2874
|
+
};
|
|
2875
|
+
/** @description Per-form completeness status, in the same order as the service's forms. */
|
|
2876
|
+
submissions: components["schemas"]["SubmissionRequirement"][];
|
|
2877
|
+
};
|
|
2791
2878
|
/**
|
|
2792
2879
|
* ServiceProvider
|
|
2793
2880
|
* @description A service provider
|
|
@@ -3026,6 +3113,20 @@ interface components {
|
|
|
3026
3113
|
* "object": "provider",
|
|
3027
3114
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
3028
3115
|
* },
|
|
3116
|
+
* "requirements": {
|
|
3117
|
+
* "booking": {
|
|
3118
|
+
* "complete": true
|
|
3119
|
+
* },
|
|
3120
|
+
* "info": {
|
|
3121
|
+
* "complete": false
|
|
3122
|
+
* },
|
|
3123
|
+
* "submissions": [
|
|
3124
|
+
* {
|
|
3125
|
+
* "complete": false,
|
|
3126
|
+
* "form_id": "frm_abc123def456"
|
|
3127
|
+
* }
|
|
3128
|
+
* ]
|
|
3129
|
+
* },
|
|
3029
3130
|
* "service": {
|
|
3030
3131
|
* "appointment_type": "in_person",
|
|
3031
3132
|
* "booking_policy": {
|
|
@@ -3118,7 +3219,19 @@ interface components {
|
|
|
3118
3219
|
* },
|
|
3119
3220
|
* "status": "slot_selected",
|
|
3120
3221
|
* "submissions": [],
|
|
3121
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
3222
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
3223
|
+
* "workflow": {
|
|
3224
|
+
* "available_steps": [
|
|
3225
|
+
* "booking",
|
|
3226
|
+
* "info",
|
|
3227
|
+
* "form:frm_abc123def456"
|
|
3228
|
+
* ],
|
|
3229
|
+
* "can_change_slot": true,
|
|
3230
|
+
* "can_complete": false,
|
|
3231
|
+
* "defunct_reason": null,
|
|
3232
|
+
* "is_defunct": false,
|
|
3233
|
+
* "resume_step": "info"
|
|
3234
|
+
* }
|
|
3122
3235
|
* },
|
|
3123
3236
|
* "type": "booking_intent.updated"
|
|
3124
3237
|
* }
|
|
@@ -3449,6 +3562,20 @@ interface components {
|
|
|
3449
3562
|
* "object": "provider",
|
|
3450
3563
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
3451
3564
|
* },
|
|
3565
|
+
* "requirements": {
|
|
3566
|
+
* "booking": {
|
|
3567
|
+
* "complete": true
|
|
3568
|
+
* },
|
|
3569
|
+
* "info": {
|
|
3570
|
+
* "complete": false
|
|
3571
|
+
* },
|
|
3572
|
+
* "submissions": [
|
|
3573
|
+
* {
|
|
3574
|
+
* "complete": false,
|
|
3575
|
+
* "form_id": "frm_abc123def456"
|
|
3576
|
+
* }
|
|
3577
|
+
* ]
|
|
3578
|
+
* },
|
|
3452
3579
|
* "service": {
|
|
3453
3580
|
* "appointment_type": "in_person",
|
|
3454
3581
|
* "booking_policy": {
|
|
@@ -3541,7 +3668,19 @@ interface components {
|
|
|
3541
3668
|
* },
|
|
3542
3669
|
* "status": "slot_selected",
|
|
3543
3670
|
* "submissions": [],
|
|
3544
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
3671
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
3672
|
+
* "workflow": {
|
|
3673
|
+
* "available_steps": [
|
|
3674
|
+
* "booking",
|
|
3675
|
+
* "info",
|
|
3676
|
+
* "form:frm_abc123def456"
|
|
3677
|
+
* ],
|
|
3678
|
+
* "can_change_slot": true,
|
|
3679
|
+
* "can_complete": false,
|
|
3680
|
+
* "defunct_reason": null,
|
|
3681
|
+
* "is_defunct": false,
|
|
3682
|
+
* "resume_step": "info"
|
|
3683
|
+
* }
|
|
3545
3684
|
* }
|
|
3546
3685
|
* ],
|
|
3547
3686
|
* "meta": {
|
|
@@ -3789,6 +3928,20 @@ interface components {
|
|
|
3789
3928
|
* "object": "provider",
|
|
3790
3929
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
3791
3930
|
* },
|
|
3931
|
+
* "requirements": {
|
|
3932
|
+
* "booking": {
|
|
3933
|
+
* "complete": true
|
|
3934
|
+
* },
|
|
3935
|
+
* "info": {
|
|
3936
|
+
* "complete": false
|
|
3937
|
+
* },
|
|
3938
|
+
* "submissions": [
|
|
3939
|
+
* {
|
|
3940
|
+
* "complete": false,
|
|
3941
|
+
* "form_id": "frm_abc123def456"
|
|
3942
|
+
* }
|
|
3943
|
+
* ]
|
|
3944
|
+
* },
|
|
3792
3945
|
* "service": {
|
|
3793
3946
|
* "appointment_type": "in_person",
|
|
3794
3947
|
* "booking_policy": {
|
|
@@ -3881,7 +4034,19 @@ interface components {
|
|
|
3881
4034
|
* },
|
|
3882
4035
|
* "status": "slot_selected",
|
|
3883
4036
|
* "submissions": [],
|
|
3884
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
4037
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
4038
|
+
* "workflow": {
|
|
4039
|
+
* "available_steps": [
|
|
4040
|
+
* "booking",
|
|
4041
|
+
* "info",
|
|
4042
|
+
* "form:frm_abc123def456"
|
|
4043
|
+
* ],
|
|
4044
|
+
* "can_change_slot": true,
|
|
4045
|
+
* "can_complete": false,
|
|
4046
|
+
* "defunct_reason": null,
|
|
4047
|
+
* "is_defunct": false,
|
|
4048
|
+
* "resume_step": "info"
|
|
4049
|
+
* }
|
|
3885
4050
|
* },
|
|
3886
4051
|
* "type": "booking_intent.created"
|
|
3887
4052
|
* }
|
|
@@ -3930,7 +4095,7 @@ interface components {
|
|
|
3930
4095
|
* IntentSubmissionInput
|
|
3931
4096
|
* @description A form submission entry containing a form ID and response data.
|
|
3932
4097
|
* @example {
|
|
3933
|
-
* "form_id": "
|
|
4098
|
+
* "form_id": "frm_abc123def456",
|
|
3934
4099
|
* "responses": {
|
|
3935
4100
|
* "color": [
|
|
3936
4101
|
* "opt_abc"
|
|
@@ -5275,8 +5440,8 @@ interface components {
|
|
|
5275
5440
|
* @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
|
|
5276
5441
|
*/
|
|
5277
5442
|
end_at?: string | null;
|
|
5278
|
-
/** @description Fields to lock from public API updates.
|
|
5279
|
-
locked_fields?:
|
|
5443
|
+
/** @description Fields to lock from public API updates. Replaces existing locked_fields entirely. */
|
|
5444
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
5280
5445
|
/** @description Custom metadata key-value pairs. Replaces existing metadata entirely. */
|
|
5281
5446
|
metadata?: {
|
|
5282
5447
|
[key: string]: unknown;
|
|
@@ -7204,6 +7369,20 @@ interface components {
|
|
|
7204
7369
|
* "id": "bi_abc123def456abc123def456",
|
|
7205
7370
|
* "locked_fields": [],
|
|
7206
7371
|
* "object": "public_booking_intent",
|
|
7372
|
+
* "requirements": {
|
|
7373
|
+
* "booking": {
|
|
7374
|
+
* "complete": true
|
|
7375
|
+
* },
|
|
7376
|
+
* "info": {
|
|
7377
|
+
* "complete": false
|
|
7378
|
+
* },
|
|
7379
|
+
* "submissions": [
|
|
7380
|
+
* {
|
|
7381
|
+
* "complete": false,
|
|
7382
|
+
* "form_id": "frm_abc123def456"
|
|
7383
|
+
* }
|
|
7384
|
+
* ]
|
|
7385
|
+
* },
|
|
7207
7386
|
* "start_at": {
|
|
7208
7387
|
* "local": "2026-02-23T10:00:00-05:00",
|
|
7209
7388
|
* "object": "zoned_date_time",
|
|
@@ -7211,7 +7390,19 @@ interface components {
|
|
|
7211
7390
|
* "unix_ts": 1771945200,
|
|
7212
7391
|
* "utc": "2026-02-23T15:00:00Z"
|
|
7213
7392
|
* },
|
|
7214
|
-
* "status": "slot_selected"
|
|
7393
|
+
* "status": "slot_selected",
|
|
7394
|
+
* "workflow": {
|
|
7395
|
+
* "available_steps": [
|
|
7396
|
+
* "booking",
|
|
7397
|
+
* "info",
|
|
7398
|
+
* "form:frm_abc123def456"
|
|
7399
|
+
* ],
|
|
7400
|
+
* "can_change_slot": true,
|
|
7401
|
+
* "can_complete": false,
|
|
7402
|
+
* "defunct_reason": null,
|
|
7403
|
+
* "is_defunct": false,
|
|
7404
|
+
* "resume_step": "info"
|
|
7405
|
+
* }
|
|
7215
7406
|
* }
|
|
7216
7407
|
*/
|
|
7217
7408
|
PublicBookingIntent: {
|
|
@@ -7228,20 +7419,22 @@ interface components {
|
|
|
7228
7419
|
hold_until?: string | null;
|
|
7229
7420
|
/** @description The booking intent ID */
|
|
7230
7421
|
id: string;
|
|
7231
|
-
/** @description Fields that are locked and cannot be updated via the public API.
|
|
7232
|
-
locked_fields?:
|
|
7422
|
+
/** @description Fields that are locked and cannot be updated via the public API. */
|
|
7423
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[];
|
|
7233
7424
|
/**
|
|
7234
7425
|
* @description The object type
|
|
7235
7426
|
* @enum {string}
|
|
7236
7427
|
*/
|
|
7237
7428
|
object: "public_booking_intent";
|
|
7429
|
+
requirements?: components["schemas"]["BookingIntentRequirements"];
|
|
7238
7430
|
/** @description The start time of the selected slot */
|
|
7239
7431
|
start_at?: components["schemas"]["ZonedDateTime"] | null;
|
|
7240
7432
|
/**
|
|
7241
|
-
* @description The current status of the booking intent
|
|
7433
|
+
* @description The current status of the booking intent. Automatically transitions from pending to slot_selected when provider_id, start_at, end_at, and time_zone are all present (on create or update).
|
|
7242
7434
|
* @enum {string}
|
|
7243
7435
|
*/
|
|
7244
7436
|
status: "pending" | "slot_selected" | "completed" | "abandoned";
|
|
7437
|
+
workflow?: components["schemas"]["BookingIntentWorkflow"];
|
|
7245
7438
|
};
|
|
7246
7439
|
/**
|
|
7247
7440
|
* ServiceForm
|
|
@@ -7723,6 +7916,20 @@ interface components {
|
|
|
7723
7916
|
*/
|
|
7724
7917
|
type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
|
|
7725
7918
|
};
|
|
7919
|
+
/**
|
|
7920
|
+
* SubmissionRequirement
|
|
7921
|
+
* @description Completeness status for a single form submission.
|
|
7922
|
+
* @example {
|
|
7923
|
+
* "complete": false,
|
|
7924
|
+
* "form_id": "frm_abc123def456"
|
|
7925
|
+
* }
|
|
7926
|
+
*/
|
|
7927
|
+
SubmissionRequirement: {
|
|
7928
|
+
/** @description Whether the submission exists and all required fields have been answered. */
|
|
7929
|
+
complete: boolean;
|
|
7930
|
+
/** @description The form's object ID. */
|
|
7931
|
+
form_id: string;
|
|
7932
|
+
};
|
|
7726
7933
|
/**
|
|
7727
7934
|
* PublicBookingIntentResponse
|
|
7728
7935
|
* @description Response schema for a single booking intent via a public interface.
|
|
@@ -7741,6 +7948,20 @@ interface components {
|
|
|
7741
7948
|
* "id": "bi_abc123def456abc123def456",
|
|
7742
7949
|
* "locked_fields": [],
|
|
7743
7950
|
* "object": "public_booking_intent",
|
|
7951
|
+
* "requirements": {
|
|
7952
|
+
* "booking": {
|
|
7953
|
+
* "complete": true
|
|
7954
|
+
* },
|
|
7955
|
+
* "info": {
|
|
7956
|
+
* "complete": false
|
|
7957
|
+
* },
|
|
7958
|
+
* "submissions": [
|
|
7959
|
+
* {
|
|
7960
|
+
* "complete": false,
|
|
7961
|
+
* "form_id": "frm_abc123def456"
|
|
7962
|
+
* }
|
|
7963
|
+
* ]
|
|
7964
|
+
* },
|
|
7744
7965
|
* "start_at": {
|
|
7745
7966
|
* "local": "2026-02-23T10:00:00-05:00",
|
|
7746
7967
|
* "object": "zoned_date_time",
|
|
@@ -7748,7 +7969,19 @@ interface components {
|
|
|
7748
7969
|
* "unix_ts": 1771945200,
|
|
7749
7970
|
* "utc": "2026-02-23T15:00:00Z"
|
|
7750
7971
|
* },
|
|
7751
|
-
* "status": "slot_selected"
|
|
7972
|
+
* "status": "slot_selected",
|
|
7973
|
+
* "workflow": {
|
|
7974
|
+
* "available_steps": [
|
|
7975
|
+
* "booking",
|
|
7976
|
+
* "info",
|
|
7977
|
+
* "form:frm_abc123def456"
|
|
7978
|
+
* ],
|
|
7979
|
+
* "can_change_slot": true,
|
|
7980
|
+
* "can_complete": false,
|
|
7981
|
+
* "defunct_reason": null,
|
|
7982
|
+
* "is_defunct": false,
|
|
7983
|
+
* "resume_step": "info"
|
|
7984
|
+
* }
|
|
7752
7985
|
* }
|
|
7753
7986
|
* }
|
|
7754
7987
|
*/
|
|
@@ -8396,6 +8629,20 @@ interface components {
|
|
|
8396
8629
|
* "object": "provider",
|
|
8397
8630
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
8398
8631
|
* },
|
|
8632
|
+
* "requirements": {
|
|
8633
|
+
* "booking": {
|
|
8634
|
+
* "complete": true
|
|
8635
|
+
* },
|
|
8636
|
+
* "info": {
|
|
8637
|
+
* "complete": false
|
|
8638
|
+
* },
|
|
8639
|
+
* "submissions": [
|
|
8640
|
+
* {
|
|
8641
|
+
* "complete": false,
|
|
8642
|
+
* "form_id": "frm_abc123def456"
|
|
8643
|
+
* }
|
|
8644
|
+
* ]
|
|
8645
|
+
* },
|
|
8399
8646
|
* "service": {
|
|
8400
8647
|
* "appointment_type": "in_person",
|
|
8401
8648
|
* "booking_policy": {
|
|
@@ -8488,7 +8735,19 @@ interface components {
|
|
|
8488
8735
|
* },
|
|
8489
8736
|
* "status": "slot_selected",
|
|
8490
8737
|
* "submissions": [],
|
|
8491
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
8738
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
8739
|
+
* "workflow": {
|
|
8740
|
+
* "available_steps": [
|
|
8741
|
+
* "booking",
|
|
8742
|
+
* "info",
|
|
8743
|
+
* "form:frm_abc123def456"
|
|
8744
|
+
* ],
|
|
8745
|
+
* "can_change_slot": true,
|
|
8746
|
+
* "can_complete": false,
|
|
8747
|
+
* "defunct_reason": null,
|
|
8748
|
+
* "is_defunct": false,
|
|
8749
|
+
* "resume_step": "info"
|
|
8750
|
+
* }
|
|
8492
8751
|
* }
|
|
8493
8752
|
* }
|
|
8494
8753
|
*/
|
|
@@ -9388,6 +9647,41 @@ interface components {
|
|
|
9388
9647
|
reschedule: string[];
|
|
9389
9648
|
};
|
|
9390
9649
|
};
|
|
9650
|
+
/**
|
|
9651
|
+
* BookingIntentWorkflow
|
|
9652
|
+
* @description Server-computed workflow state for a booking intent. Provides step routing,
|
|
9653
|
+
* completability, and defunct state so the frontend can render the correct
|
|
9654
|
+
* booking flow without inferring these from raw fields.
|
|
9655
|
+
* @example {
|
|
9656
|
+
* "available_steps": [
|
|
9657
|
+
* "booking",
|
|
9658
|
+
* "info",
|
|
9659
|
+
* "form:frm_abc123def456"
|
|
9660
|
+
* ],
|
|
9661
|
+
* "can_change_slot": true,
|
|
9662
|
+
* "can_complete": false,
|
|
9663
|
+
* "defunct_reason": null,
|
|
9664
|
+
* "is_defunct": false,
|
|
9665
|
+
* "resume_step": "info"
|
|
9666
|
+
* }
|
|
9667
|
+
*/
|
|
9668
|
+
BookingIntentWorkflow: {
|
|
9669
|
+
/** @description Ordered list of steps the user can visit. Computed from service forms and locked_fields. */
|
|
9670
|
+
available_steps: string[];
|
|
9671
|
+
/** @description Whether slot fields (start_at, end_at, time_zone) are unlocked and can be modified. */
|
|
9672
|
+
can_change_slot: boolean;
|
|
9673
|
+
/** @description Whether the intent has enough valid data to submit right now. When true, calling the complete endpoint will succeed regardless of whether the current status is pending or slot_selected. */
|
|
9674
|
+
can_complete: boolean;
|
|
9675
|
+
/**
|
|
9676
|
+
* @description Why the intent is defunct. Null when not defunct.
|
|
9677
|
+
* @enum {string|null}
|
|
9678
|
+
*/
|
|
9679
|
+
defunct_reason?: "abandoned" | "no_available_steps" | "status_invalid" | null;
|
|
9680
|
+
/** @description Whether the intent is in an unrecoverable state and should render a terminal UI. */
|
|
9681
|
+
is_defunct: boolean;
|
|
9682
|
+
/** @description The step the UI should show on load or resume. One of: booking, info, form:<form_id>, confirmed, defunct. */
|
|
9683
|
+
resume_step: string;
|
|
9684
|
+
};
|
|
9391
9685
|
/**
|
|
9392
9686
|
* ProviderDeactivatedEventData
|
|
9393
9687
|
* @description This is an object representing data for the provider deactivated event.
|
|
@@ -9828,6 +10122,20 @@ interface components {
|
|
|
9828
10122
|
* "object": "provider",
|
|
9829
10123
|
* "updated_at": "2017-09-13T10:11:12Z"
|
|
9830
10124
|
* },
|
|
10125
|
+
* "requirements": {
|
|
10126
|
+
* "booking": {
|
|
10127
|
+
* "complete": true
|
|
10128
|
+
* },
|
|
10129
|
+
* "info": {
|
|
10130
|
+
* "complete": false
|
|
10131
|
+
* },
|
|
10132
|
+
* "submissions": [
|
|
10133
|
+
* {
|
|
10134
|
+
* "complete": false,
|
|
10135
|
+
* "form_id": "frm_abc123def456"
|
|
10136
|
+
* }
|
|
10137
|
+
* ]
|
|
10138
|
+
* },
|
|
9831
10139
|
* "service": {
|
|
9832
10140
|
* "appointment_type": "in_person",
|
|
9833
10141
|
* "booking_policy": {
|
|
@@ -9920,7 +10228,19 @@ interface components {
|
|
|
9920
10228
|
* },
|
|
9921
10229
|
* "status": "slot_selected",
|
|
9922
10230
|
* "submissions": [],
|
|
9923
|
-
* "updated_at": "2026-02-22T10:00:00Z"
|
|
10231
|
+
* "updated_at": "2026-02-22T10:00:00Z",
|
|
10232
|
+
* "workflow": {
|
|
10233
|
+
* "available_steps": [
|
|
10234
|
+
* "booking",
|
|
10235
|
+
* "info",
|
|
10236
|
+
* "form:frm_abc123def456"
|
|
10237
|
+
* ],
|
|
10238
|
+
* "can_change_slot": true,
|
|
10239
|
+
* "can_complete": false,
|
|
10240
|
+
* "defunct_reason": null,
|
|
10241
|
+
* "is_defunct": false,
|
|
10242
|
+
* "resume_step": "info"
|
|
10243
|
+
* }
|
|
9924
10244
|
* }
|
|
9925
10245
|
*/
|
|
9926
10246
|
BookingIntent: {
|
|
@@ -9965,8 +10285,8 @@ interface components {
|
|
|
9965
10285
|
hold_until?: string | null;
|
|
9966
10286
|
/** @description The booking intent ID */
|
|
9967
10287
|
id: string;
|
|
9968
|
-
/** @description Fields that are locked and cannot be updated via the public API.
|
|
9969
|
-
locked_fields?:
|
|
10288
|
+
/** @description Fields that are locked and cannot be updated via the public API. */
|
|
10289
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[];
|
|
9970
10290
|
/** @description Custom metadata key-value pairs */
|
|
9971
10291
|
metadata?: {
|
|
9972
10292
|
[key: string]: unknown;
|
|
@@ -9978,6 +10298,8 @@ interface components {
|
|
|
9978
10298
|
object: "booking_intent";
|
|
9979
10299
|
/** @description The assigned provider */
|
|
9980
10300
|
provider?: components["schemas"]["Provider"] | null;
|
|
10301
|
+
/** @description Per-section completeness status. Present on single-intent responses, null on list responses. */
|
|
10302
|
+
requirements?: components["schemas"]["BookingIntentRequirements"] | null;
|
|
9981
10303
|
/** @description The selected service */
|
|
9982
10304
|
service?: components["schemas"]["Service"] | null;
|
|
9983
10305
|
/** @description Whether the slot has been prevalidated. When true, public completion skips slot validation. */
|
|
@@ -9985,7 +10307,7 @@ interface components {
|
|
|
9985
10307
|
/** @description The start time of the selected slot */
|
|
9986
10308
|
start_at?: components["schemas"]["ZonedDateTime"] | null;
|
|
9987
10309
|
/**
|
|
9988
|
-
* @description The current status of the booking intent
|
|
10310
|
+
* @description The current status of the booking intent. Automatically transitions from pending to slot_selected when provider_id, start_at, end_at, and time_zone are all present (on create or update).
|
|
9989
10311
|
* @enum {string}
|
|
9990
10312
|
*/
|
|
9991
10313
|
status: "pending" | "slot_selected" | "completed" | "abandoned";
|
|
@@ -9996,6 +10318,8 @@ interface components {
|
|
|
9996
10318
|
* @description When the intent was last updated
|
|
9997
10319
|
*/
|
|
9998
10320
|
updated_at: string;
|
|
10321
|
+
/** @description Server-computed workflow state. Present on single-intent responses, null on list responses. */
|
|
10322
|
+
workflow?: components["schemas"]["BookingIntentWorkflow"] | null;
|
|
9999
10323
|
};
|
|
10000
10324
|
/**
|
|
10001
10325
|
* CreateServiceRequest
|
|
@@ -15071,9 +15395,11 @@ type BookingIntentAbandonedEventData = Schemas["BookingIntentAbandonedEventData"
|
|
|
15071
15395
|
type BookingIntentBookingPolicy = Schemas["BookingIntentBookingPolicy"];
|
|
15072
15396
|
type BookingIntentCompletedEventData = Schemas["BookingIntentCompletedEventData"];
|
|
15073
15397
|
type BookingIntentCreatedEventData = Schemas["BookingIntentCreatedEventData"];
|
|
15398
|
+
type BookingIntentRequirements = Schemas["BookingIntentRequirements"];
|
|
15074
15399
|
type BookingIntentResponse = Schemas["BookingIntentResponse"];
|
|
15075
15400
|
type BookingIntentsResponse = Schemas["BookingIntentsResponse"];
|
|
15076
15401
|
type BookingIntentUpdatedEventData = Schemas["BookingIntentUpdatedEventData"];
|
|
15402
|
+
type BookingIntentWorkflow = Schemas["BookingIntentWorkflow"];
|
|
15077
15403
|
type BookingPolicy = Schemas["BookingPolicy"];
|
|
15078
15404
|
type CancelAppointmentRequest = Schemas["CancelAppointmentRequest"];
|
|
15079
15405
|
type CancellationEvent = Schemas["CancellationEvent"];
|
|
@@ -15191,6 +15517,7 @@ type ServiceUpdatedEventData = Schemas["ServiceUpdatedEventData"];
|
|
|
15191
15517
|
type Slot = Schemas["Slot"];
|
|
15192
15518
|
type SlotRule = Schemas["SlotRule"];
|
|
15193
15519
|
type SortServiceFormsRequest = Schemas["SortServiceFormsRequest"];
|
|
15520
|
+
type SubmissionRequirement = Schemas["SubmissionRequirement"];
|
|
15194
15521
|
type UnauthorizedResponse = Schemas["UnauthorizedResponse"];
|
|
15195
15522
|
type UpdateAccountRequest = Schemas["UpdateAccountRequest"];
|
|
15196
15523
|
type UpdateAccountUserRequest = Schemas["UpdateAccountUserRequest"];
|
|
@@ -16042,7 +16369,7 @@ declare function createBookingIntent(client: FetchClient, body: RequestBody<"/v1
|
|
|
16042
16369
|
} | null;
|
|
16043
16370
|
client_id?: string | null;
|
|
16044
16371
|
end_at?: string | null;
|
|
16045
|
-
locked_fields?:
|
|
16372
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
16046
16373
|
metadata?: {
|
|
16047
16374
|
[key: string]: unknown;
|
|
16048
16375
|
} | null;
|
|
@@ -19594,7 +19921,7 @@ declare function updateBookingIntent(client: FetchClient, path: PathParams<"/v1/
|
|
|
19594
19921
|
} | null;
|
|
19595
19922
|
client_id?: string | null;
|
|
19596
19923
|
end_at?: string | null;
|
|
19597
|
-
locked_fields?:
|
|
19924
|
+
locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
|
|
19598
19925
|
metadata?: {
|
|
19599
19926
|
[key: string]: unknown;
|
|
19600
19927
|
} | null;
|
|
@@ -20186,4 +20513,4 @@ declare function updateService(client: FetchClient, path: PathParams<"/v1/servic
|
|
|
20186
20513
|
};
|
|
20187
20514
|
}, `${string}/${string}`>>;
|
|
20188
20515
|
|
|
20189
|
-
export { type Account, type AccountEvent, type AccountResponse, type AccountUser, type AccountUserCreatedEventData, type AccountUserDeletedEventData, type AccountUserResponse, type AccountUserUpdatedEventData, type AccountUsersResponse, type AccountsResponse, type AdvanceNoticePolicy, type AggregatedSlot, type Appointment, type AppointmentCanceledEventData, type AppointmentConfirmedEventData, type AppointmentCreatedEventData, type AppointmentDeletedEventData, type AppointmentRescheduledEventData, type AppointmentResponse, type AppointmentsResponse, type AttachServiceFormRequest, type Block, type BlockCreatedEventData, type BlockDeletedEventData, type BlockResponse, type BlockUpdatedEventData, type BlocksResponse, type BookingIntent, type BookingIntentAbandonedEventData, type BookingIntentBookingPolicy, type BookingIntentCompletedEventData, type BookingIntentCreatedEventData, type BookingIntentResponse, type BookingIntentUpdatedEventData, type BookingIntentsResponse, type BookingPolicy, type CancelAppointmentRequest, type CancelPublicAppointmentRequest, type CancellationEvent, type CancellationPolicy, type CancellationReason, type CancellationReasonResponse, type CancellationReasonsResponse, type Client, type ClientCreatedEventData, type ClientDeletedEventData, type ClientField, type ClientFieldChoice, type ClientFieldOptions, type ClientFieldResponse, type ClientFieldsResponse, type ClientResponse, type ClientUpdatedEventData, type ClientsResponse, type CompleteBookingIntentRequest, type CompletePublicBookingIntentRequest, type ConfirmAppointmentRequest, type ConfirmationEvent, type ConnectedAccount, type ConnectedAccountCreatedEventData, type ConnectedAccountDeletedEventData, type ConnectedAccountReconnectedEventData, type ConnectedAccountRefreshFailedEventData, type ConnectedAccountResponse, type ConnectedAccountsResponse, type CreateAccountRequest, type CreateAccountUserRequest, type CreateAppointmentRequest, type CreateBlockRequest, type CreateBookingIntentRequest, type CreateCancellationReasonRequest, type CreateClientFieldRequest, type CreateClientRequest, type CreateDashboardSessionRequest, type CreateFormRequest, type CreateProviderRequest, type CreateProviderScheduleRequest, type CreatePublicAppointmentRequest, type CreatePublicBookingIntentRequest, type CreateServiceProviderRequest, type CreateServiceRequest, type DashboardSession, type DashboardSessionResponse, type FetchClient, type FetchClientOptions, type FieldChoice, type FieldChoiceInput, type FieldOptions, type FieldOptionsInput, type ForbiddenResponse, type Form, type FormDetail, type FormField, type FormFieldInput, type FormResponse, type FormsResponse, type GenericErrorResponse, type HoldPolicy, type IntentSubmissionInput, type JsonError, type JsonErrorResponse, type MaximizeUtilizationPolicy, type NotFoundResponse, type PaginationMeta, type PathParams, type Platform, type PlatformResponse, type Provider, type ProviderCreatedEventData, type ProviderDeactivatedEventData, type ProviderNotificationConfig, type ProviderNotificationType, type ProviderReactivatedEventData, type ProviderResponse, type ProviderSchedule, type ProviderScheduleCreatedEventData, type ProviderScheduleDeletedEventData, type ProviderScheduleResponse, type ProviderScheduleUpdatedEventData, type ProviderSchedulesResponse, type ProviderUpdatedEventData, type ProvidersResponse, type PublicAppointment, type PublicAppointmentResponse, type PublicBookingIntent, type PublicBookingIntentResponse, type PublicCancellationReason, type PublicCancellationReasonsResponse, type PublicServiceEarliestSlotResponse, type PublicServiceSlotsResponse, type QueryParams, type RecurrenceRule, type RequestBody, type RescheduleAppointmentRequest, type RescheduleEvent, type ReschedulePublicAppointmentRequest, type ReschedulingPolicy, type Role, type RolesResponse, type Service, type ServiceCreatedEventData, type ServiceDeletedEventData, type ServiceForm, type ServiceFormResponse, type ServiceFormsResponse, type ServiceProvider, type ServiceProviderCreatedEventData, type ServiceProviderDeletedEventData, type ServiceProviderResponse, type ServiceProvidersResponse, type ServiceResponse, type ServiceSlotResponse, type ServiceUpdatedEventData, type ServicesResponse, type Slot, type SlotRule, type SortServiceFormsRequest, type UnauthorizedResponse, type UpdateAccountRequest, type UpdateAccountUserRequest, type UpdateBlockRequest, type UpdateBookingIntentRequest, type UpdateCancellationReasonRequest, type UpdateClientFieldRequest, type UpdateClientRequest, type UpdateConnectedAccountRequest, type UpdateFormRequest, type UpdateProviderRequest, type UpdateProviderScheduleRequest, type UpdatePublicBookingIntentRequest, type UpdateServiceRequest, type User, type WeeklyRule, type ZonedDateTime, abandonBookingIntent, abandonPublicBookingIntent, attachServiceForm, cancelAppointment, cancelPublicAppointment, completeBookingIntent, completePublicBookingIntent, confirmAppointment, createAccount, createAccountUser, createAppointment, createBlock, createBookingIntent, createCancellationReason, createClient, createClientField, createDashboardSession, createFetchClient, createForm, createProvider, createProviderSchedule, createPublicAppointment, createPublicBookingIntent, createService, createServiceProvider, deactivateProvider, deleteBlock, deleteCancellationReason, deleteClient, deleteClientField, deleteConnectedAccount, deleteForm, deleteProviderSchedule, deleteService, deleteServiceProvider, detachServiceForm, getAccountById, getAppointment, getBlock, getBookingIntent, getCancellationReason, getClient, getClientField, getConnectedAccount, getCurrentAccount, getCurrentAccountUser, getCurrentPlatform, getEarliestPublicServiceSlot, getForm, getProvider, getProviderSchedule, getPublicAppointment, getPublicBookingIntent, getService, listAccountUsers, listAccounts, listAppointments, listBlocks, listBookingIntents, listCancellationReasons, listClientFields, listClients, listConnectedAccounts, listForms, listProviderSchedules, listProviders, listPublicCancellationReasons, listPublicServiceSlots, listRoles, listServiceForms, listServiceProviders, listServiceSlots, listServices, type paths, rescheduleAppointment, reschedulePublicAppointment, sortServiceForms, updateAccount, updateAccountUser, updateBlock, updateBookingIntent, updateCancellationReason, updateClient, updateClientField, updateConnectedAccount, updateForm, updateProvider, updateProviderSchedule, updatePublicBookingIntent, updateService };
|
|
20516
|
+
export { type Account, type AccountEvent, type AccountResponse, type AccountUser, type AccountUserCreatedEventData, type AccountUserDeletedEventData, type AccountUserResponse, type AccountUserUpdatedEventData, type AccountUsersResponse, type AccountsResponse, type AdvanceNoticePolicy, type AggregatedSlot, type Appointment, type AppointmentCanceledEventData, type AppointmentConfirmedEventData, type AppointmentCreatedEventData, type AppointmentDeletedEventData, type AppointmentRescheduledEventData, type AppointmentResponse, type AppointmentsResponse, type AttachServiceFormRequest, type Block, type BlockCreatedEventData, type BlockDeletedEventData, type BlockResponse, type BlockUpdatedEventData, type BlocksResponse, type BookingIntent, type BookingIntentAbandonedEventData, type BookingIntentBookingPolicy, type BookingIntentCompletedEventData, type BookingIntentCreatedEventData, type BookingIntentRequirements, type BookingIntentResponse, type BookingIntentUpdatedEventData, type BookingIntentWorkflow, type BookingIntentsResponse, type BookingPolicy, type CancelAppointmentRequest, type CancelPublicAppointmentRequest, type CancellationEvent, type CancellationPolicy, type CancellationReason, type CancellationReasonResponse, type CancellationReasonsResponse, type Client, type ClientCreatedEventData, type ClientDeletedEventData, type ClientField, type ClientFieldChoice, type ClientFieldOptions, type ClientFieldResponse, type ClientFieldsResponse, type ClientResponse, type ClientUpdatedEventData, type ClientsResponse, type CompleteBookingIntentRequest, type CompletePublicBookingIntentRequest, type ConfirmAppointmentRequest, type ConfirmationEvent, type ConnectedAccount, type ConnectedAccountCreatedEventData, type ConnectedAccountDeletedEventData, type ConnectedAccountReconnectedEventData, type ConnectedAccountRefreshFailedEventData, type ConnectedAccountResponse, type ConnectedAccountsResponse, type CreateAccountRequest, type CreateAccountUserRequest, type CreateAppointmentRequest, type CreateBlockRequest, type CreateBookingIntentRequest, type CreateCancellationReasonRequest, type CreateClientFieldRequest, type CreateClientRequest, type CreateDashboardSessionRequest, type CreateFormRequest, type CreateProviderRequest, type CreateProviderScheduleRequest, type CreatePublicAppointmentRequest, type CreatePublicBookingIntentRequest, type CreateServiceProviderRequest, type CreateServiceRequest, type DashboardSession, type DashboardSessionResponse, type FetchClient, type FetchClientOptions, type FieldChoice, type FieldChoiceInput, type FieldOptions, type FieldOptionsInput, type ForbiddenResponse, type Form, type FormDetail, type FormField, type FormFieldInput, type FormResponse, type FormsResponse, type GenericErrorResponse, type HoldPolicy, type IntentSubmissionInput, type JsonError, type JsonErrorResponse, type MaximizeUtilizationPolicy, type NotFoundResponse, type PaginationMeta, type PathParams, type Platform, type PlatformResponse, type Provider, type ProviderCreatedEventData, type ProviderDeactivatedEventData, type ProviderNotificationConfig, type ProviderNotificationType, type ProviderReactivatedEventData, type ProviderResponse, type ProviderSchedule, type ProviderScheduleCreatedEventData, type ProviderScheduleDeletedEventData, type ProviderScheduleResponse, type ProviderScheduleUpdatedEventData, type ProviderSchedulesResponse, type ProviderUpdatedEventData, type ProvidersResponse, type PublicAppointment, type PublicAppointmentResponse, type PublicBookingIntent, type PublicBookingIntentResponse, type PublicCancellationReason, type PublicCancellationReasonsResponse, type PublicServiceEarliestSlotResponse, type PublicServiceSlotsResponse, type QueryParams, type RecurrenceRule, type RequestBody, type RescheduleAppointmentRequest, type RescheduleEvent, type ReschedulePublicAppointmentRequest, type ReschedulingPolicy, type Role, type RolesResponse, type Service, type ServiceCreatedEventData, type ServiceDeletedEventData, type ServiceForm, type ServiceFormResponse, type ServiceFormsResponse, type ServiceProvider, type ServiceProviderCreatedEventData, type ServiceProviderDeletedEventData, type ServiceProviderResponse, type ServiceProvidersResponse, type ServiceResponse, type ServiceSlotResponse, type ServiceUpdatedEventData, type ServicesResponse, type Slot, type SlotRule, type SortServiceFormsRequest, type SubmissionRequirement, type UnauthorizedResponse, type UpdateAccountRequest, type UpdateAccountUserRequest, type UpdateBlockRequest, type UpdateBookingIntentRequest, type UpdateCancellationReasonRequest, type UpdateClientFieldRequest, type UpdateClientRequest, type UpdateConnectedAccountRequest, type UpdateFormRequest, type UpdateProviderRequest, type UpdateProviderScheduleRequest, type UpdatePublicBookingIntentRequest, type UpdateServiceRequest, type User, type WeeklyRule, type ZonedDateTime, abandonBookingIntent, abandonPublicBookingIntent, attachServiceForm, cancelAppointment, cancelPublicAppointment, completeBookingIntent, completePublicBookingIntent, confirmAppointment, createAccount, createAccountUser, createAppointment, createBlock, createBookingIntent, createCancellationReason, createClient, createClientField, createDashboardSession, createFetchClient, createForm, createProvider, createProviderSchedule, createPublicAppointment, createPublicBookingIntent, createService, createServiceProvider, deactivateProvider, deleteBlock, deleteCancellationReason, deleteClient, deleteClientField, deleteConnectedAccount, deleteForm, deleteProviderSchedule, deleteService, deleteServiceProvider, detachServiceForm, getAccountById, getAppointment, getBlock, getBookingIntent, getCancellationReason, getClient, getClientField, getConnectedAccount, getCurrentAccount, getCurrentAccountUser, getCurrentPlatform, getEarliestPublicServiceSlot, getForm, getProvider, getProviderSchedule, getPublicAppointment, getPublicBookingIntent, getService, listAccountUsers, listAccounts, listAppointments, listBlocks, listBookingIntents, listCancellationReasons, listClientFields, listClients, listConnectedAccounts, listForms, listProviderSchedules, listProviders, listPublicCancellationReasons, listPublicServiceSlots, listRoles, listServiceForms, listServiceProviders, listServiceSlots, listServices, type paths, rescheduleAppointment, reschedulePublicAppointment, sortServiceForms, updateAccount, updateAccountUser, updateBlock, updateBookingIntent, updateCancellationReason, updateClient, updateClientField, updateConnectedAccount, updateForm, updateProvider, updateProviderSchedule, updatePublicBookingIntent, updateService };
|