@producerflow/producerflowapi 1.0.1 → 1.0.4

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.
@@ -43,11 +43,19 @@ export declare const PaginationSchema: GenMessage<Pagination>;
43
43
  */
44
44
  export type Address = Message<"producerflow.producer.v1.Address"> & {
45
45
  /**
46
- * Street address including house/building number and street name
46
+ * Deprecated: Use address_line_1 instead.
47
47
  *
48
- * @generated from field: string street = 1;
48
+ * @generated from field: string street = 1 [deprecated = true];
49
+ * @deprecated
49
50
  */
50
51
  street: string;
52
+ /**
53
+ * Primary address line including house/building number and street name.
54
+ * For backward compatibility, either street or address_line_1 can be used.
55
+ *
56
+ * @generated from field: string address_line_1 = 7;
57
+ */
58
+ addressLine1: string;
51
59
  /**
52
60
  * City of the address
53
61
  *
@@ -72,6 +80,12 @@ export type Address = Message<"producerflow.producer.v1.Address"> & {
72
80
  * @generated from field: string county = 5;
73
81
  */
74
82
  county: string;
83
+ /**
84
+ * Optional second line of address (apt, suite, unit, etc.)
85
+ *
86
+ * @generated from field: optional string address_line_2 = 6;
87
+ */
88
+ addressLine2?: string;
75
89
  };
76
90
  /**
77
91
  * Describes the message producerflow.producer.v1.Address.
@@ -79,7 +93,13 @@ export type Address = Message<"producerflow.producer.v1.Address"> & {
79
93
  */
80
94
  export declare const AddressSchema: GenMessage<Address>;
81
95
  /**
82
- * CreateAgencyOnboardingURLRequest contains information needed to generate an agency onboarding URL. This includes basic agency information and defaults. All fields in this request are optional. You can provide as much or as little information as you have available. Any missing information will be collected from the user during the onboarding process through the generated URL.
96
+ * CreateAgencyOnboardingURLRequest contains information needed to generate
97
+ * an agency onboarding URL. This includes basic agency information and
98
+ * defaults.
99
+ *
100
+ * All fields in this request are optional. You can provide as much or as little
101
+ * information as you have available. Any missing information will be collected
102
+ * from the user during the onboarding process through the generated URL.
83
103
  *
84
104
  * @generated from message producerflow.producer.v1.CreateAgencyOnboardingURLRequest
85
105
  */
@@ -353,7 +373,10 @@ export declare const ProducerDataSchema: GenMessage<ProducerData>;
353
373
  */
354
374
  export type ProducerData_Address = Message<"producerflow.producer.v1.ProducerData.Address"> & {
355
375
  /**
356
- * @generated from field: string street = 1;
376
+ * Deprecated: Use address_line_1 instead.
377
+ *
378
+ * @generated from field: string street = 1 [deprecated = true];
379
+ * @deprecated
357
380
  */
358
381
  street: string;
359
382
  /**
@@ -372,6 +395,16 @@ export type ProducerData_Address = Message<"producerflow.producer.v1.ProducerDat
372
395
  * @generated from field: string country = 5;
373
396
  */
374
397
  country: string;
398
+ /**
399
+ * @generated from field: optional string address_line_2 = 6;
400
+ */
401
+ addressLine2?: string;
402
+ /**
403
+ * Primary address line including house/building number and street name
404
+ *
405
+ * @generated from field: string address_line_1 = 7;
406
+ */
407
+ addressLine1: string;
375
408
  };
376
409
  /**
377
410
  * Describes the message producerflow.producer.v1.ProducerData.Address.
@@ -543,12 +576,23 @@ export type NewAgencyRequest_Agency = Message<"producerflow.producer.v1.NewAgenc
543
576
  /**
544
577
  * MetadataQuestions contains custom metadata questions and answers for the agency.
545
578
  * The map key is the question identifier/text, and the value is the answer provided.
579
+ * This field is deprecated and will be removed in a future release.
546
580
  *
547
581
  * @generated from field: map<string, string> metadata_questions = 21;
548
582
  */
549
583
  metadataQuestions: {
550
584
  [key: string]: string;
551
585
  };
586
+ /**
587
+ * tenant_additional_questions contains tenant-specific custom questions configured by
588
+ * Producerflow and their corresponding responses. Keys are question identifiers or text,
589
+ * values are the answers provided.
590
+ *
591
+ * @generated from field: map<string, string> tenant_additional_questions = 22;
592
+ */
593
+ tenantAdditionalQuestions: {
594
+ [key: string]: string;
595
+ };
552
596
  };
553
597
  /**
554
598
  * Describes the message producerflow.producer.v1.NewAgencyRequest.Agency.
@@ -613,6 +657,23 @@ export type NewAgencyRequest_Agency_Principal = Message<"producerflow.producer.v
613
657
  * @generated from field: optional bool sync_with_nipr = 7;
614
658
  */
615
659
  syncWithNipr?: boolean;
660
+ /**
661
+ * tenant_additional_questions contains tenant-specific custom questions configured by
662
+ * Producerflow and their corresponding responses. Keys are question identifiers or text,
663
+ * values are the answers provided.
664
+ *
665
+ * @generated from field: map<string, string> tenant_additional_questions = 8;
666
+ */
667
+ tenantAdditionalQuestions: {
668
+ [key: string]: string;
669
+ };
670
+ /**
671
+ * The mailing address of the principal.
672
+ * This is where correspondence for the principal will be sent.
673
+ *
674
+ * @generated from field: producerflow.producer.v1.Address mailing_address = 9;
675
+ */
676
+ mailingAddress?: Address;
616
677
  };
617
678
  /**
618
679
  * Describes the message producerflow.producer.v1.NewAgencyRequest.Agency.Principal.
@@ -1203,12 +1264,26 @@ export type UpdateProducerRequest_Producer = Message<"producerflow.producer.v1.U
1203
1264
  */
1204
1265
  phone?: string;
1205
1266
  /**
1206
- * Street address of the producer.
1207
- * If provided, must be non-empty.
1267
+ * Deprecated: Use address_line_1 instead.
1208
1268
  *
1209
- * @generated from field: optional string street = 6;
1269
+ * @generated from field: optional string street = 6 [deprecated = true];
1270
+ * @deprecated
1210
1271
  */
1211
1272
  street?: string;
1273
+ /**
1274
+ * Primary address line of the producer.
1275
+ * If provided, must be non-empty.
1276
+ *
1277
+ * @generated from field: optional string address_line_1 = 14;
1278
+ */
1279
+ addressLine1?: string;
1280
+ /**
1281
+ * Second line of the address (apartment, suite, unit, etc.).
1282
+ * If provided, must be non-empty.
1283
+ *
1284
+ * @generated from field: optional string address_line_2 = 13;
1285
+ */
1286
+ addressLine2?: string;
1212
1287
  /**
1213
1288
  * City of the producer.
1214
1289
  * If provided, must be non-empty.
@@ -1230,6 +1305,27 @@ export type UpdateProducerRequest_Producer = Message<"producerflow.producer.v1.U
1230
1305
  * @generated from field: optional string zip = 9;
1231
1306
  */
1232
1307
  zip?: string;
1308
+ /**
1309
+ * ExternalMetadata contains additional custom information that the tenant stores in ProducerFlow's data model.
1310
+ * This field allows tenants to attach arbitrary key-value pairs to agencies for their own business logic,
1311
+ * reporting, or integration needs. This field is populated programmatically via API calls by the tenant's systems.
1312
+ * Common use cases include:
1313
+ * - Storing references to external system states or categories
1314
+ * - Adding custom tags or classifications
1315
+ * - Maintaining tenant-specific business attributes
1316
+ * - Storing computed values or derived data
1317
+ * The map key is the metadata field name, and the value is the associated data.
1318
+ *
1319
+ * Update behavior:
1320
+ * - If not provided (null): existing metadata is preserved unchanged
1321
+ * - If provided as empty map {}: existing metadata is cleared
1322
+ * - If provided with values: existing metadata is completely replaced with the new values
1323
+ *
1324
+ * @generated from field: map<string, string> external_metadata = 11;
1325
+ */
1326
+ externalMetadata: {
1327
+ [key: string]: string;
1328
+ };
1233
1329
  };
1234
1330
  /**
1235
1331
  * Describes the message producerflow.producer.v1.UpdateProducerRequest.Producer.
@@ -1324,6 +1420,27 @@ export type UpdateAgencyRequest_Agency = Message<"producerflow.producer.v1.Updat
1324
1420
  * @generated from field: optional producerflow.producer.v1.UpdateAgencyRequest.Agency.Address physical_address = 7;
1325
1421
  */
1326
1422
  physicalAddress?: UpdateAgencyRequest_Agency_Address;
1423
+ /**
1424
+ * ExternalMetadata contains additional custom information that the tenant stores in ProducerFlow's data model.
1425
+ * This field allows tenants to attach arbitrary key-value pairs to agencies for their own business logic,
1426
+ * reporting, or integration needs. This field is populated programmatically via API calls by the tenant's systems.
1427
+ * Common use cases include:
1428
+ * - Storing references to external system states or categories
1429
+ * - Adding custom tags or classifications
1430
+ * - Maintaining tenant-specific business attributes
1431
+ * - Storing computed values or derived data
1432
+ * The map key is the metadata field name, and the value is the associated data.
1433
+ *
1434
+ * Update behavior:
1435
+ * - If not provided (null): existing metadata is preserved unchanged
1436
+ * - If provided as empty map {}: existing metadata is cleared
1437
+ * - If provided with values: existing metadata is completely replaced with the new values
1438
+ *
1439
+ * @generated from field: map<string, string> external_metadata = 8;
1440
+ */
1441
+ externalMetadata: {
1442
+ [key: string]: string;
1443
+ };
1327
1444
  };
1328
1445
  /**
1329
1446
  * Describes the message producerflow.producer.v1.UpdateAgencyRequest.Agency.
@@ -1339,10 +1456,10 @@ export declare const UpdateAgencyRequest_AgencySchema: GenMessage<UpdateAgencyRe
1339
1456
  */
1340
1457
  export type UpdateAgencyRequest_Agency_Address = Message<"producerflow.producer.v1.UpdateAgencyRequest.Agency.Address"> & {
1341
1458
  /**
1342
- * Street address including house/building number and street name.
1343
- * If provided, must be non-empty.
1459
+ * Deprecated: Use address_line_1 instead.
1344
1460
  *
1345
- * @generated from field: optional string street = 1;
1461
+ * @generated from field: optional string street = 1 [deprecated = true];
1462
+ * @deprecated
1346
1463
  */
1347
1464
  street?: string;
1348
1465
  /**
@@ -1366,6 +1483,20 @@ export type UpdateAgencyRequest_Agency_Address = Message<"producerflow.producer.
1366
1483
  * @generated from field: optional string zip = 4;
1367
1484
  */
1368
1485
  zip?: string;
1486
+ /**
1487
+ * Additional address line (e.g., apartment, suite, floor number).
1488
+ * If provided, must be non-empty.
1489
+ *
1490
+ * @generated from field: optional string address_line_2 = 5;
1491
+ */
1492
+ addressLine2?: string;
1493
+ /**
1494
+ * Primary address line including house/building number and street name.
1495
+ * If provided, must be non-empty.
1496
+ *
1497
+ * @generated from field: optional string address_line_1 = 6;
1498
+ */
1499
+ addressLine1?: string;
1369
1500
  };
1370
1501
  /**
1371
1502
  * Describes the message producerflow.producer.v1.UpdateAgencyRequest.Agency.Address.
@@ -1423,13 +1554,27 @@ export type ListNewProducersResponse = Message<"producerflow.producer.v1.ListNew
1423
1554
  */
1424
1555
  export declare const ListNewProducersResponseSchema: GenMessage<ListNewProducersResponse>;
1425
1556
  /**
1426
- * Agency represents a complete agency entity with all associated information.
1557
+ * Agency represents a complete insurance agency with all associated data.
1558
+ *
1559
+ * This message contains comprehensive agency information including:
1560
+ * - Basic contact and identification details
1561
+ * - Principal producer information
1562
+ * - Banking details for commission payments
1563
+ * - Business operating information
1564
+ * - NIPR-synchronized licensing and regulatory data
1565
+ * - Physical locations
1566
+ *
1567
+ * The NIPR data is automatically synchronized from the National Insurance
1568
+ * Producer Registry and includes licenses, appointments, regulatory actions,
1569
+ * and addresses. This data is read-only and can only be updated by triggering
1570
+ * NIPR sync operations.
1427
1571
  *
1428
1572
  * @generated from message producerflow.producer.v1.Agency
1429
1573
  */
1430
1574
  export type Agency = Message<"producerflow.producer.v1.Agency"> & {
1431
1575
  /**
1432
- * Unique identifier for the agency.
1576
+ * Unique identifier for the agency (UUID format).
1577
+ * This ID is used in all API operations that reference this agency.
1433
1578
  *
1434
1579
  * @generated from field: string agency_id = 1;
1435
1580
  */
@@ -1595,12 +1740,39 @@ export type Agency_AgencyInfo = Message<"producerflow.producer.v1.Agency.AgencyI
1595
1740
  * MetadataQuestions contains custom metadata questions and answers for the agency.
1596
1741
  * This field stores tenant-specific questions that were collected during agency onboarding.
1597
1742
  * The map key is the question identifier/text, and the value is the answer provided.
1743
+ * This field is deprecated and will be removed in a future release.
1598
1744
  *
1599
1745
  * @generated from field: map<string, string> metadata_questions = 11;
1600
1746
  */
1601
1747
  metadataQuestions: {
1602
1748
  [key: string]: string;
1603
1749
  };
1750
+ /**
1751
+ * ExternalMetadata contains additional custom information that the tenant stores in ProducerFlow's data model.
1752
+ * This field allows tenants to attach arbitrary key-value pairs to agencies for their own business logic,
1753
+ * reporting, or integration needs. This field is populated programmatically via API calls by the tenant's systems.
1754
+ * Common use cases include:
1755
+ * - Storing references to external system states or categories
1756
+ * - Adding custom tags or classifications
1757
+ * - Maintaining tenant-specific business attributes
1758
+ * - Storing computed values or derived data
1759
+ * The map key is the metadata field name, and the value is the associated data.
1760
+ *
1761
+ * @generated from field: map<string, string> external_metadata = 12;
1762
+ */
1763
+ externalMetadata: {
1764
+ [key: string]: string;
1765
+ };
1766
+ /**
1767
+ * tenant_additional_questions contains tenant-specific custom questions configured by
1768
+ * Producerflow and their corresponding responses. Keys are question identifiers or text,
1769
+ * values are the answers provided.
1770
+ *
1771
+ * @generated from field: map<string, string> tenant_additional_questions = 13;
1772
+ */
1773
+ tenantAdditionalQuestions: {
1774
+ [key: string]: string;
1775
+ };
1604
1776
  };
1605
1777
  /**
1606
1778
  * Describes the message producerflow.producer.v1.Agency.AgencyInfo.
@@ -1615,9 +1787,10 @@ export declare const Agency_AgencyInfoSchema: GenMessage<Agency_AgencyInfo>;
1615
1787
  */
1616
1788
  export type Agency_Address = Message<"producerflow.producer.v1.Agency.Address"> & {
1617
1789
  /**
1618
- * Street name and number of the location.
1790
+ * Deprecated: Use address_line_1 instead.
1619
1791
  *
1620
- * @generated from field: string street = 1;
1792
+ * @generated from field: string street = 1 [deprecated = true];
1793
+ * @deprecated
1621
1794
  */
1622
1795
  street: string;
1623
1796
  /**
@@ -1638,6 +1811,18 @@ export type Agency_Address = Message<"producerflow.producer.v1.Agency.Address">
1638
1811
  * @generated from field: string zip = 4;
1639
1812
  */
1640
1813
  zip: string;
1814
+ /**
1815
+ * Primary address line including street name and number of the location.
1816
+ *
1817
+ * @generated from field: string address_line_1 = 5;
1818
+ */
1819
+ addressLine1: string;
1820
+ /**
1821
+ * Optional second line of address (apt, suite, unit, etc.)
1822
+ *
1823
+ * @generated from field: optional string address_line_2 = 6;
1824
+ */
1825
+ addressLine2?: string;
1641
1826
  };
1642
1827
  /**
1643
1828
  * Describes the message producerflow.producer.v1.Agency.Address.
@@ -2028,9 +2213,10 @@ export type Agency_NIPR_Address = Message<"producerflow.producer.v1.Agency.NIPR.
2028
2213
  */
2029
2214
  addressState: string;
2030
2215
  /**
2031
- * Street address.
2216
+ * Deprecated: Use address_line_1 instead.
2032
2217
  *
2033
- * @generated from field: string street = 4;
2218
+ * @generated from field: string street = 4 [deprecated = true];
2219
+ * @deprecated
2034
2220
  */
2035
2221
  street: string;
2036
2222
  /**
@@ -2063,6 +2249,12 @@ export type Agency_NIPR_Address = Message<"producerflow.producer.v1.Agency.NIPR.
2063
2249
  * @generated from field: google.protobuf.Timestamp updated_at = 9;
2064
2250
  */
2065
2251
  updatedAt?: Timestamp;
2252
+ /**
2253
+ * Primary address line.
2254
+ *
2255
+ * @generated from field: string address_line_1 = 10;
2256
+ */
2257
+ addressLine1: string;
2066
2258
  };
2067
2259
  /**
2068
2260
  * Describes the message producerflow.producer.v1.Agency.NIPR.Address.
@@ -2391,14 +2583,36 @@ export type Agency_NIPR_Appointment = Message<"producerflow.producer.v1.Agency.N
2391
2583
  */
2392
2584
  export declare const Agency_NIPR_AppointmentSchema: GenMessage<Agency_NIPR_Appointment>;
2393
2585
  /**
2394
- * Producer represents a producer that has been onboarded.
2395
- *
2396
- * Internal ID of the producer.
2586
+ * Producer represents an insurance producer (agent) with complete licensing
2587
+ * information.
2588
+ *
2589
+ * This message contains comprehensive producer information including:
2590
+ * - Basic contact details (name, email, phone, address)
2591
+ * - Agency association
2592
+ * - NIPR-synchronized licensing data (licenses, appointments, regulatory actions)
2593
+ * - Location assignments within the agency
2594
+ *
2595
+ * NIPR Data Synchronization:
2596
+ * The NIPR data is automatically fetched from the National Insurance Producer
2597
+ * Registry when the producer is created (if sync_with_nipr is enabled) and can
2598
+ * be refreshed by:
2599
+ * - Calling SyncProducerWithNIPR manually
2600
+ * - Automatic daily updates via PDB Alerts (if pdb_alerts_sync_enabled is true)
2601
+ *
2602
+ * Use Cases:
2603
+ * - Verify producer licenses before selling insurance products
2604
+ * - Check Lines of Authority (LOAs) to ensure producers can sell specific product types
2605
+ * - Monitor license expiration dates for compliance
2606
+ * - Track carrier appointments to know which companies the producer can represent
2607
+ * - Review regulatory history before hiring or contracting
2397
2608
  *
2398
2609
  * @generated from message producerflow.producer.v1.Producer
2399
2610
  */
2400
2611
  export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2401
2612
  /**
2613
+ * Unique identifier for the producer (UUID format).
2614
+ * This ID is used in all API operations that reference this producer.
2615
+ *
2402
2616
  * @generated from field: string id = 1;
2403
2617
  */
2404
2618
  id: string;
@@ -2444,7 +2658,8 @@ export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2444
2658
  phone: string;
2445
2659
  /**
2446
2660
  * Indicates whether the producer is enabled to be synchronized with NIPR API.
2447
- * When true, the system will regularly check for updates from NIPR.
2661
+ * When true, the system will regularly check for updates from NIPR using
2662
+ * PDB Alerts, providing automatic daily updates at no extra cost.
2448
2663
  *
2449
2664
  * @generated from field: bool pdb_alerts_sync_enabled = 13;
2450
2665
  */
@@ -2492,12 +2707,39 @@ export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2492
2707
  * MetadataQuestions contains custom metadata questions and answers for the producer.
2493
2708
  * This field stores tenant-specific questions that need to be asked during producer onboarding.
2494
2709
  * The map key is the question identifier/text, and the value is the answer provided.
2710
+ * This field is deprecated and will be removed in a future release.
2495
2711
  *
2496
2712
  * @generated from field: map<string, string> metadata_questions = 40;
2497
2713
  */
2498
2714
  metadataQuestions: {
2499
2715
  [key: string]: string;
2500
2716
  };
2717
+ /**
2718
+ * ExternalMetadata contains additional custom information that the tenant stores in ProducerFlow's data model.
2719
+ * This field allows tenants to attach arbitrary key-value pairs to producers for their own business logic,
2720
+ * reporting, or integration needs. This field is populated programmatically via API calls by the tenant's systems.
2721
+ * Common use cases include:
2722
+ * - Storing references to external system states or categories
2723
+ * - Adding custom tags or classifications
2724
+ * - Maintaining tenant-specific business attributes
2725
+ * - Storing computed values or derived data
2726
+ * The map key is the metadata field name, and the value is the associated data.
2727
+ *
2728
+ * @generated from field: map<string, string> external_metadata = 41;
2729
+ */
2730
+ externalMetadata: {
2731
+ [key: string]: string;
2732
+ };
2733
+ /**
2734
+ * tenant_additional_questions contains tenant-specific custom questions configured by
2735
+ * Producerflow and their corresponding responses. Keys are question identifiers or text,
2736
+ * values are the answers provided.
2737
+ *
2738
+ * @generated from field: map<string, string> tenant_additional_questions = 42;
2739
+ */
2740
+ tenantAdditionalQuestions: {
2741
+ [key: string]: string;
2742
+ };
2501
2743
  };
2502
2744
  /**
2503
2745
  * Describes the message producerflow.producer.v1.Producer.
@@ -2553,9 +2795,18 @@ export type Producer_NIPR = Message<"producerflow.producer.v1.Producer.NIPR"> &
2553
2795
  */
2554
2796
  regulatoryInfo?: Producer_NIPR_ProducerRegulatoryInfo;
2555
2797
  /**
2556
- * List of carrier appointments held by the producer in NIPR.
2557
- * These represent relationships with insurance carriers that allow
2558
- * the producer to sell their products.
2798
+ * List of carrier appointments held by the producer.
2799
+ *
2800
+ * Each appointment represents authorization to sell a specific carrier's
2801
+ * products for a specific line of authority. A producer typically has
2802
+ * multiple appointments across different carriers and LOAs.
2803
+ *
2804
+ * Before allowing a producer to quote or sell a product:
2805
+ * 1. Verify they have an active appointment with that carrier
2806
+ * 2. Verify the appointment's LOA matches the product type
2807
+ * 3. Check the appointment renewal date hasn't passed
2808
+ *
2809
+ * This data is synchronized from NIPR and is read-only.
2559
2810
  *
2560
2811
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.Appointment appointments = 10;
2561
2812
  */
@@ -2567,7 +2818,25 @@ export type Producer_NIPR = Message<"producerflow.producer.v1.Producer.NIPR"> &
2567
2818
  */
2568
2819
  export declare const Producer_NIPRSchema: GenMessage<Producer_NIPR>;
2569
2820
  /**
2570
- * License contains information about a producer's insurance license.
2821
+ * License contains information about a producer's insurance license in a
2822
+ * specific state.
2823
+ *
2824
+ * Each producer can hold multiple licenses across different states. Each
2825
+ * license includes a set of Lines of Authority (LOAs) that define what
2826
+ * types of insurance the producer is authorized to sell.
2827
+ *
2828
+ * Key Concepts:
2829
+ * - Resident License: License in the producer's home state
2830
+ * - Non-Resident License: License in states other than the producer's home
2831
+ * state
2832
+ * - Lines of Authority (LOAs): Specific insurance types the license permits
2833
+ * (e.g., Life, Health, Property & Casualty, Variable Contracts)
2834
+ *
2835
+ * Compliance Use Cases:
2836
+ * - Verify producer is licensed in the state where they're selling
2837
+ * - Check license hasn't expired before allowing sales
2838
+ * - Ensure producer has the correct LOA for the product type
2839
+ * - Monitor expiration dates to send renewal reminders
2571
2840
  *
2572
2841
  * @generated from message producerflow.producer.v1.Producer.NIPR.License
2573
2842
  */
@@ -2617,8 +2886,12 @@ export type Producer_NIPR_License = Message<"producerflow.producer.v1.Producer.N
2617
2886
  */
2618
2887
  updatedAt?: Timestamp;
2619
2888
  /**
2620
- * Lines of Authority associated with this license.
2621
- * These define what types of insurance the producer can sell in this state.
2889
+ * Lines of Authority (LOAs) associated with this license.
2890
+ *
2891
+ * These define what types of insurance the producer is authorized to sell
2892
+ * in this state. A single license typically has multiple LOAs. Always
2893
+ * check that the producer has an active LOA matching the product type
2894
+ * before allowing sales.
2622
2895
  *
2623
2896
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority lines_of_authority = 8;
2624
2897
  */
@@ -2630,27 +2903,60 @@ export type Producer_NIPR_License = Message<"producerflow.producer.v1.Producer.N
2630
2903
  */
2631
2904
  export declare const Producer_NIPR_LicenseSchema: GenMessage<Producer_NIPR_License>;
2632
2905
  /**
2633
- * LineOfAuthority represents a specific type of insurance coverage
2634
- * that a producer is authorized to sell under this license.
2906
+ * LineOfAuthority (LOA) represents a specific type of insurance that a
2907
+ * producer is authorized to sell under this license.
2908
+ *
2909
+ * Each license can have multiple LOAs. For example, a license might
2910
+ * include:
2911
+ * - LIFE
2912
+ * - HEALTH
2913
+ * - ACCIDENT AND HEALTH
2914
+ * - PROPERTY AND CASUALTY
2915
+ * - VARIABLE LIFE AND VARIABLE ANNUITY
2916
+ *
2917
+ * LOA Compliance:
2918
+ * Before allowing a producer to sell a product, verify they have an
2919
+ * active LOA that matches the product type. For example, a producer with
2920
+ * only a LIFE LOA cannot sell Property & Casualty insurance.
2921
+ *
2922
+ * LOA names are standardized by NIPR but may vary slightly between
2923
+ * states.
2635
2924
  *
2636
2925
  * @generated from message producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority
2637
2926
  */
2638
2927
  export type Producer_NIPR_License_LineOfAuthority = Message<"producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority"> & {
2639
2928
  /**
2640
- * The Line of Authority description (e.g., "Life", "Property and Casualty", "Health").
2641
- * This is typically an uppercase string that describes the insurance type.
2929
+ * The Line of Authority name (e.g., "LIFE", "PROPERTY AND CASUALTY",
2930
+ * "HEALTH").
2931
+ *
2932
+ * Common LOA types:
2933
+ * - LIFE: Life insurance products
2934
+ * - HEALTH: Health insurance products
2935
+ * - ACCIDENT AND HEALTH: Combined accident and health coverage
2936
+ * - PROPERTY: Property insurance
2937
+ * - CASUALTY: Casualty insurance
2938
+ * - PROPERTY AND CASUALTY: Combined property and casualty
2939
+ * - VARIABLE LIFE AND VARIABLE ANNUITY: Variable products requiring
2940
+ * securities license
2941
+ * - PERSONAL LINES: Homeowners, auto, and personal umbrella policies
2942
+ * - COMMERCIAL LINES: Business insurance policies
2943
+ *
2944
+ * This is typically an uppercase string standardized by NIPR.
2642
2945
  *
2643
2946
  * @generated from field: string loa = 1;
2644
2947
  */
2645
2948
  loa: string;
2646
2949
  /**
2647
2950
  * Whether this Line of Authority is currently active.
2951
+ * Inactive LOAs cannot be used to sell that type of insurance.
2648
2952
  *
2649
2953
  * @generated from field: bool active = 2;
2650
2954
  */
2651
2955
  active: boolean;
2652
2956
  /**
2653
- * The date when this Line of Authority was issued.
2957
+ * The date when this Line of Authority was first issued.
2958
+ * This helps track how long the producer has been authorized for this
2959
+ * insurance type.
2654
2960
  *
2655
2961
  * @generated from field: google.protobuf.Timestamp issue_date = 3;
2656
2962
  */
@@ -2662,7 +2968,7 @@ export type Producer_NIPR_License_LineOfAuthority = Message<"producerflow.produc
2662
2968
  */
2663
2969
  export declare const Producer_NIPR_License_LineOfAuthoritySchema: GenMessage<Producer_NIPR_License_LineOfAuthority>;
2664
2970
  /**
2665
- * LicenseStatus defines the possible statuses of an insurance license.
2971
+ * LicenseStatus defines the current state of an insurance license.
2666
2972
  *
2667
2973
  * @generated from enum producerflow.producer.v1.Producer.NIPR.License.LicenseStatus
2668
2974
  */
@@ -2674,20 +2980,26 @@ export declare enum Producer_NIPR_License_LicenseStatus {
2674
2980
  */
2675
2981
  UNSPECIFIED = 0,
2676
2982
  /**
2677
- * The license has expired and is no longer valid.
2983
+ * The license has expired and is no longer valid for selling insurance.
2984
+ * The producer must renew the license before conducting business in
2985
+ * this state.
2678
2986
  *
2679
2987
  * @generated from enum value: LICENSE_STATUS_EXPIRED = 1;
2680
2988
  */
2681
2989
  EXPIRED = 1,
2682
2990
  /**
2683
- * License is currently active.
2991
+ * License is currently active and in good standing.
2992
+ * The producer can sell insurance in this state according to their
2993
+ * LOAs.
2684
2994
  *
2685
2995
  * @generated from enum value: LICENSE_STATUS_VALID = 2;
2686
2996
  */
2687
2997
  VALID = 2,
2688
2998
  /**
2689
- * The license exists but is not in an active state.
2690
- * This could be due to suspension, revocation, or other reasons.
2999
+ * The license exists but is not currently active.
3000
+ * Reasons include: suspension, revocation, lapsed (not renewed), or
3001
+ * voluntarily inactive. The producer cannot sell insurance in this
3002
+ * state until the license is reinstated.
2691
3003
  *
2692
3004
  * @generated from enum value: LICENSE_STATUS_NOT_ACTIVE = 3;
2693
3005
  */
@@ -2860,48 +3172,88 @@ export type Producer_NIPR_ProducerRegulatoryInfo_RegulatoryAction = Message<"pro
2860
3172
  */
2861
3173
  export declare const Producer_NIPR_ProducerRegulatoryInfo_RegulatoryActionSchema: GenMessage<Producer_NIPR_ProducerRegulatoryInfo_RegulatoryAction>;
2862
3174
  /**
2863
- * Appointment represents a relationship between a producer and an insurance carrier.
3175
+ * Appointment represents a producer's authorization to sell products for a
3176
+ * specific insurance carrier.
3177
+ *
3178
+ * What is an Appointment?
3179
+ * An appointment is a formal relationship between a producer and an
3180
+ * insurance company that grants the producer authority to sell that
3181
+ * company's insurance products. Having a license is not enough - the
3182
+ * producer must also be appointed by each carrier whose products they want
3183
+ * to sell.
3184
+ *
3185
+ * Appointment Lifecycle:
3186
+ * 1. Active: Producer can sell this carrier's products
3187
+ * 2. Terminated: Appointment ended (various reasons: producer left, carrier
3188
+ * terminated, etc.)
3189
+ *
3190
+ * Use Cases:
3191
+ * - Verify producer is appointed before allowing them to quote/sell a
3192
+ * carrier's products
3193
+ * - Track which carriers each producer can represent
3194
+ * - Monitor appointment renewal dates
3195
+ * - Understand termination reasons for compliance and vetting
2864
3196
  *
2865
3197
  * @generated from message producerflow.producer.v1.Producer.NIPR.Appointment
2866
3198
  */
2867
3199
  export type Producer_NIPR_Appointment = Message<"producerflow.producer.v1.Producer.NIPR.Appointment"> & {
2868
3200
  /**
3201
+ * Branch identifier for multi-branch agencies.
3202
+ * This links the appointment to a specific agency branch if applicable.
3203
+ *
2869
3204
  * @generated from field: string branch_id = 1;
2870
3205
  */
2871
3206
  branchId: string;
2872
3207
  /**
2873
3208
  * Name of the insurance company for this appointment.
3209
+ * Examples: "State Farm", "Allstate", "Blue Cross Blue Shield"
2874
3210
  *
2875
3211
  * @generated from field: string company_name = 2;
2876
3212
  */
2877
3213
  companyName: string;
2878
3214
  /**
2879
- * Federal Employer Identification Number of the producer's company.
3215
+ * Federal Employer Identification Number (FEIN) of the insurance carrier.
3216
+ * This uniquely identifies the carrier company.
2880
3217
  *
2881
3218
  * @generated from field: string fein = 3;
2882
3219
  */
2883
3220
  fein: string;
2884
3221
  /**
2885
- * Company code for the insurance carrier.
3222
+ * Company code: A standardized code identifying the insurance carrier.
3223
+ * This is used in industry systems for carrier identification.
2886
3224
  *
2887
3225
  * @generated from field: string co_code = 4;
2888
3226
  */
2889
3227
  coCode: string;
2890
3228
  /**
2891
- * Line of authority for this appointment (e.g., Life, Property, Casualty).
2892
- * Indicates what types of insurance the producer can sell.
3229
+ * Line of authority for this appointment.
3230
+ *
3231
+ * This indicates what type of insurance the producer can sell for this
3232
+ * carrier. A producer might have multiple appointments with the same
3233
+ * carrier for different LOAs.
3234
+ *
3235
+ * Examples: "LIFE", "HEALTH", "PROPERTY AND CASUALTY", "VARIABLE LIFE AND
3236
+ * VARIABLE ANNUITY"
2893
3237
  *
2894
3238
  * @generated from field: string line_of_authority = 5;
2895
3239
  */
2896
3240
  lineOfAuthority: string;
2897
3241
  /**
2898
- * Code for the line of authority for this appointment.
3242
+ * Code for the line of authority.
3243
+ * A standardized code representing the LOA type.
2899
3244
  *
2900
3245
  * @generated from field: string loa_code = 6;
2901
3246
  */
2902
3247
  loaCode: string;
2903
3248
  /**
2904
- * Current status of the appointment (e.g., Active, Terminated).
3249
+ * Current status of the appointment.
3250
+ *
3251
+ * Common values:
3252
+ * - "Active": Producer can sell this carrier's products
3253
+ * - "Terminated": Appointment has ended
3254
+ * - "Pending": Appointment is being processed
3255
+ *
3256
+ * Always check status is "Active" before allowing sales.
2905
3257
  *
2906
3258
  * @generated from field: string status = 7;
2907
3259
  */
@@ -2909,23 +3261,35 @@ export type Producer_NIPR_Appointment = Message<"producerflow.producer.v1.Produc
2909
3261
  /**
2910
3262
  * Reason for termination if the appointment has been terminated.
2911
3263
  *
3264
+ * Common termination reasons:
3265
+ * - Producer requested termination
3266
+ * - Carrier terminated appointment
3267
+ * - Producer left agency
3268
+ * - Compliance or regulatory issues
3269
+ *
3270
+ * This field is empty if the appointment is still active.
3271
+ *
2912
3272
  * @generated from field: string termination_reason = 8;
2913
3273
  */
2914
3274
  terminationReason: string;
2915
3275
  /**
2916
- * Date associated with the current status or reason.
3276
+ * Date when the status or termination reason became effective.
3277
+ * For terminated appointments, this is when the termination occurred.
2917
3278
  *
2918
3279
  * @generated from field: google.protobuf.Timestamp status_reason_date = 9;
2919
3280
  */
2920
3281
  statusReasonDate?: Timestamp;
2921
3282
  /**
2922
3283
  * Date when the appointment will renew.
3284
+ * Appointments typically renew annually. Monitor this date for upcoming
3285
+ * renewals.
2923
3286
  *
2924
3287
  * @generated from field: google.protobuf.Timestamp appointment_renewal_date = 10;
2925
3288
  */
2926
3289
  appointmentRenewalDate?: Timestamp;
2927
3290
  /**
2928
3291
  * Additional affiliations or roles the producer has with the agency.
3292
+ * This may include special designations or relationship details.
2929
3293
  *
2930
3294
  * @generated from field: string agency_affiliations = 11;
2931
3295
  */
@@ -2943,9 +3307,10 @@ export declare const Producer_NIPR_AppointmentSchema: GenMessage<Producer_NIPR_A
2943
3307
  */
2944
3308
  export type Producer_Address = Message<"producerflow.producer.v1.Producer.Address"> & {
2945
3309
  /**
2946
- * Street address of the producer.
3310
+ * Deprecated: Use address_line_1 instead.
2947
3311
  *
2948
- * @generated from field: string street = 1;
3312
+ * @generated from field: string street = 1 [deprecated = true];
3313
+ * @deprecated
2949
3314
  */
2950
3315
  street: string;
2951
3316
  /**
@@ -2966,6 +3331,18 @@ export type Producer_Address = Message<"producerflow.producer.v1.Producer.Addres
2966
3331
  * @generated from field: string zip = 4;
2967
3332
  */
2968
3333
  zip: string;
3334
+ /**
3335
+ * Optional second line of address (apt, suite, unit, etc.)
3336
+ *
3337
+ * @generated from field: optional string address_line_2 = 13;
3338
+ */
3339
+ addressLine2?: string;
3340
+ /**
3341
+ * Primary address line of the producer.
3342
+ *
3343
+ * @generated from field: string address_line_1 = 14;
3344
+ */
3345
+ addressLine1: string;
2969
3346
  };
2970
3347
  /**
2971
3348
  * Describes the message producerflow.producer.v1.Producer.Address.
@@ -2975,80 +3352,171 @@ export declare const Producer_AddressSchema: GenMessage<Producer_Address>;
2975
3352
  /**
2976
3353
  * NewProducer represents the data needed to create a new producer in the system.
2977
3354
  *
3355
+ * This message is used by both NewProducer (single) and NewProducers (bulk) RPCs
3356
+ * to define producer information during creation. Producers are licensed insurance
3357
+ * professionals who can sell insurance products on behalf of carriers.
3358
+ *
3359
+ * Required vs Optional Fields:
3360
+ * - Required: first_name, last_name, email
3361
+ * - Strongly recommended: npn (for NIPR sync and validation)
3362
+ * - Optional: All other fields
3363
+ *
3364
+ * NIPR Integration:
3365
+ * If an NPN is provided, the system will validate it against NIPR's database.
3366
+ * Depending on the sync_with_nipr setting, it may also fetch complete license,
3367
+ * appointment, and regulatory information from NIPR.
3368
+ *
2978
3369
  * @generated from message producerflow.producer.v1.NewProducer
2979
3370
  */
2980
3371
  export type NewProducer = Message<"producerflow.producer.v1.NewProducer"> & {
2981
3372
  /**
2982
3373
  * First name of the producer.
2983
- * Required and must be non-empty.
3374
+ * Required field that must be non-empty.
3375
+ * Used for identification and correspondence.
2984
3376
  *
2985
3377
  * @generated from field: string first_name = 1;
2986
3378
  */
2987
3379
  firstName: string;
2988
3380
  /**
2989
3381
  * Last name of the producer.
2990
- * Required and must be non-empty.
3382
+ * Required field that must be non-empty.
3383
+ * Used for identification and formal communications.
2991
3384
  *
2992
3385
  * @generated from field: string last_name = 2;
2993
3386
  */
2994
3387
  lastName: string;
2995
3388
  /**
2996
3389
  * Middle name of the producer.
2997
- * Optional.
3390
+ * Optional field for complete name identification.
3391
+ * Important for NIPR matching when multiple producers have similar names.
2998
3392
  *
2999
3393
  * @generated from field: string middle_name = 7;
3000
3394
  */
3001
3395
  middleName: string;
3002
3396
  /**
3003
3397
  * Email address of the producer.
3004
- * Required and must be a valid email format.
3005
- * Must be unique within the tenant.
3398
+ * Required field with email format validation.
3399
+ * Must be unique across all producers in the tenant.
3400
+ * Used for:
3401
+ * - Account notifications and communications
3402
+ * - Password resets and authentication
3403
+ * - Unique identifier within the system
3006
3404
  *
3007
3405
  * @generated from field: string email = 3;
3008
3406
  */
3009
3407
  email: string;
3010
3408
  /**
3011
3409
  * National Producer Number (NPN) of the producer.
3410
+ * Optional but strongly recommended for licensed producers.
3411
+ * This unique identifier from NAIC enables:
3412
+ * - NIPR data synchronization (licenses, appointments, regulatory actions)
3413
+ * - Carrier appointment verification
3414
+ * - Compliance tracking across states
3415
+ * If provided, must be valid in NIPR's database or creation will fail.
3012
3416
  *
3013
3417
  * @generated from field: string npn = 4;
3014
3418
  */
3015
3419
  npn: string;
3016
3420
  /**
3017
3421
  * Phone number of the producer.
3018
- * Optional if default value, but if provided must match the pattern of a valid phone number.
3422
+ * Optional field for contact purposes.
3423
+ * If provided, must match international phone number pattern.
3424
+ * Format: Can include country code (e.g., +1 for US)
3019
3425
  *
3020
3426
  * @generated from field: string phone = 5;
3021
3427
  */
3022
3428
  phone: string;
3023
3429
  /**
3024
3430
  * Mailing address of the producer.
3025
- * This is where correspondence will be sent.
3431
+ * Optional but recommended for complete producer profiles.
3432
+ * This address is used for physical mail delivery and may differ
3433
+ * from the agency's address.
3026
3434
  *
3027
3435
  * @generated from field: producerflow.producer.v1.NewProducer.Address mailing_address = 6;
3028
3436
  */
3029
3437
  mailingAddress?: NewProducer_Address;
3030
3438
  /**
3031
- * Optional. External identifier for the producer in the tenant's system. This field allows tenants to maintain a reference to their own internal ID for this producer, enabling bi-directional synchronization between ProducerFlow and the tenant's system. Usage: Provide this when you have an existing identifier for the producer in your system. Omit if you don't need to track a reference to your internal system. This is independent of ProducerFlow's internal IDs and the authentication tenant context. Can be used with SetExternalID RPC to update this value after creation. Common use cases: Linking to an existing CRM or AMS system producer ID. Maintaining synchronization with legacy systems. Enabling lookups from external systems back to ProducerFlow. Format: Any string identifier that is meaningful in your system (e.g., "PROD-12345", "uuid"). Validation: Maximum length of 255 characters.
3439
+ * External identifier for the producer in the tenant's system.
3440
+ *
3441
+ * Optional field that enables bi-directional synchronization between ProducerFlow
3442
+ * and your internal systems. This allows you to maintain your existing producer
3443
+ * identifiers while leveraging ProducerFlow's capabilities.
3444
+ *
3445
+ * Usage Guidelines:
3446
+ * - Provide this when you have an existing identifier for the producer
3447
+ * - Omit if you don't need to track a reference to your internal system
3448
+ * - Can be updated later using the SetExternalID RPC
3449
+ * - Must be unique within your tenant for meaningful lookups
3450
+ *
3451
+ * Common Use Cases:
3452
+ * - Linking to an existing CRM or AMS system producer ID
3453
+ * - Maintaining synchronization with legacy systems
3454
+ * - Enabling lookups from external systems back to ProducerFlow
3455
+ * - Supporting data migration and system transitions
3456
+ *
3457
+ * Format: Any string identifier meaningful in your system (e.g., "PROD-12345", UUID)
3458
+ * Maximum length: 255 characters
3032
3459
  *
3033
3460
  * @generated from field: string tenant_id = 8;
3034
3461
  */
3035
3462
  tenantId: string;
3036
3463
  /**
3037
- * Optional list of location IDs to assign to the producer during creation.
3038
- * All locations must exist and belong to the specified agency.
3464
+ * Location IDs to assign to the producer during creation.
3465
+ *
3466
+ * Optional field for associating the producer with specific agency locations.
3467
+ * This is useful for multi-location agencies where producers work from or
3468
+ * service specific offices.
3469
+ *
3470
+ * Validation:
3471
+ * - All location IDs must be valid UUIDs
3472
+ * - All locations must exist and belong to the specified agency
3473
+ * - Maximum of 100 locations per producer
3474
+ * - Invalid location IDs will cause the entire creation to fail
3475
+ *
3476
+ * Post-Creation Management:
3477
+ * - Use AssignProducerToLocations to add more locations later
3478
+ * - Use UnassignProducerFromLocations to remove locations
3479
+ * - Use ListAgencyLocations to see available locations for an agency
3039
3480
  *
3040
3481
  * @generated from field: repeated string location_ids = 10;
3041
3482
  */
3042
3483
  locationIds: string[];
3043
3484
  /**
3044
- * MetadataQuestions contains custom metadata questions and answers for the producer.
3045
- * The map key is the question identifier/text, and the value is the answer provided.
3485
+ * Custom metadata questions and answers for the producer.
3486
+ *
3487
+ * Optional field for storing tenant-specific information collected during
3488
+ * producer onboarding. This allows tenants to capture additional data points
3489
+ * that are important for their business processes but not part of the
3490
+ * standard producer fields.
3491
+ *
3492
+ * Structure:
3493
+ * - Key: Question identifier or the question text itself
3494
+ * - Value: The producer's answer or response
3495
+ *
3496
+ * Common Use Cases:
3497
+ * - Compliance questionnaires (e.g., "Have you ever had a license revoked?")
3498
+ * - Business preferences (e.g., "Preferred carrier partners")
3499
+ * - Specializations (e.g., "Areas of expertise")
3500
+ * - Internal classifications (e.g., "Producer tier", "Region")
3501
+ *
3502
+ * Note: This data is stored but not validated by ProducerFlow. Ensure your
3503
+ * application handles any necessary validation of the responses.
3046
3504
  *
3047
3505
  * @generated from field: map<string, string> metadata_questions = 11;
3048
3506
  */
3049
3507
  metadataQuestions: {
3050
3508
  [key: string]: string;
3051
3509
  };
3510
+ /**
3511
+ * tenant_additional_questions contains tenant-specific custom questions configured by
3512
+ * Producerflow and their corresponding responses. Keys are question identifiers or text,
3513
+ * values are the answers provided.
3514
+ *
3515
+ * @generated from field: map<string, string> tenant_additional_questions = 12;
3516
+ */
3517
+ tenantAdditionalQuestions: {
3518
+ [key: string]: string;
3519
+ };
3052
3520
  };
3053
3521
  /**
3054
3522
  * Describes the message producerflow.producer.v1.NewProducer.
@@ -3057,38 +3525,55 @@ export type NewProducer = Message<"producerflow.producer.v1.NewProducer"> & {
3057
3525
  export declare const NewProducerSchema: GenMessage<NewProducer>;
3058
3526
  /**
3059
3527
  * Address represents a mailing address for the producer.
3528
+ * All fields are required when an address is provided.
3529
+ * This address is used for:
3530
+ * - Official correspondence
3531
+ * - Licensing documentation
3532
+ * - Commission statements
3060
3533
  *
3061
3534
  * @generated from message producerflow.producer.v1.NewProducer.Address
3062
3535
  */
3063
3536
  export type NewProducer_Address = Message<"producerflow.producer.v1.NewProducer.Address"> & {
3064
3537
  /**
3065
- * Street address of the producer.
3066
- * Required and must be non-empty.
3538
+ * Deprecated: Use address_line_1 instead.
3067
3539
  *
3068
- * @generated from field: string street = 1;
3540
+ * @generated from field: string street = 1 [deprecated = true];
3541
+ * @deprecated
3069
3542
  */
3070
3543
  street: string;
3071
3544
  /**
3072
- * City of the producer.
3073
- * Required and must be non-empty.
3545
+ * City of the producer's mailing address.
3074
3546
  *
3075
3547
  * @generated from field: string city = 2;
3076
3548
  */
3077
3549
  city: string;
3078
3550
  /**
3079
- * State of the producer.
3080
- * Required and must be a 2-letter state code.
3551
+ * State of the producer's mailing address.
3552
+ * Must be a valid 2-letter US state code (e.g., "CA", "NY").
3081
3553
  *
3082
3554
  * @generated from field: string state = 3;
3083
3555
  */
3084
3556
  state: string;
3085
3557
  /**
3086
- * Zip code of the producer.
3087
- * Required and must be between 1 and 10 characters.
3558
+ * Zip code of the producer's mailing address.
3559
+ * Supports both 5-digit (12345) and ZIP+4 (12345-6789) formats.
3088
3560
  *
3089
3561
  * @generated from field: string zip = 4;
3090
3562
  */
3091
3563
  zip: string;
3564
+ /**
3565
+ * Optional second line of address (apt, suite, unit, etc.)
3566
+ *
3567
+ * @generated from field: optional string address_line_2 = 5;
3568
+ */
3569
+ addressLine2?: string;
3570
+ /**
3571
+ * Primary address line of the producer.
3572
+ * For backward compatibility, either street or address_line_1 can be used.
3573
+ *
3574
+ * @generated from field: string address_line_1 = 6;
3575
+ */
3576
+ addressLine1: string;
3092
3577
  };
3093
3578
  /**
3094
3579
  * Describes the message producerflow.producer.v1.NewProducer.Address.
@@ -3150,30 +3635,65 @@ export type NewProducerResponse = Message<"producerflow.producer.v1.NewProducerR
3150
3635
  */
3151
3636
  export declare const NewProducerResponseSchema: GenMessage<NewProducerResponse>;
3152
3637
  /**
3153
- * NewProducersRequest is used to create multiple producers in a single request.
3154
- * All producers will be associated with the specified agency.
3638
+ * NewProducersRequest creates multiple producers and associates them with a single agency.
3639
+ *
3640
+ * This request supports bulk creation of producers, which is more efficient than making
3641
+ * multiple individual NewProducer calls. All producers in the request will be associated
3642
+ * with the same agency, making this ideal for onboarding producer teams.
3643
+ *
3644
+ * Operation Behavior:
3645
+ * Producers are created sequentially. If a producer fails validation, the request
3646
+ * returns an error, but any producers created before the failure will remain in
3647
+ * the system.
3648
+ *
3649
+ * Request Limits:
3650
+ * - Minimum producers: 1 (enforced by validation)
3651
+ * - All producers must be for the same agency
3652
+ *
3653
+ * Each producer in the list can specify:
3654
+ * - Basic information (name, email, phone)
3655
+ * - NPN for NIPR validation and sync
3656
+ * - Mailing address
3657
+ * - Location assignments within the agency
3658
+ * - External ID for tenant system integration
3659
+ * - Custom metadata questions
3660
+ *
3661
+ * Common Use Cases:
3662
+ * - Bulk importing producers from spreadsheets or CSV files
3663
+ * - Migrating producer data from legacy systems
3664
+ * - Setting up new agencies with their initial producer roster
3665
+ * - Adding multiple producers during mergers or acquisitions
3155
3666
  *
3156
3667
  * @generated from message producerflow.producer.v1.NewProducersRequest
3157
3668
  */
3158
3669
  export type NewProducersRequest = Message<"producerflow.producer.v1.NewProducersRequest"> & {
3159
3670
  /**
3160
- * The UUID of the agency to associate the producers with.
3161
- * Must be a valid UUID format.
3671
+ * The UUID of the agency to associate all producers with.
3672
+ * This agency must exist and belong to the authenticated tenant.
3673
+ * All producers in the request will be assigned to this single agency.
3162
3674
  *
3163
3675
  * @generated from field: string agency_id = 1;
3164
3676
  */
3165
3677
  agencyId: string;
3166
3678
  /**
3167
- * List of producers to create.
3168
- * This field is required and must contain at least one producer.
3679
+ * List of producers to create in this bulk operation.
3680
+ * Required field that must contain at least one producer.
3681
+ * Each producer undergoes full validation including NPN verification if provided.
3169
3682
  *
3170
3683
  * @generated from field: repeated producerflow.producer.v1.NewProducer producers = 2;
3171
3684
  */
3172
3685
  producers: NewProducer[];
3173
3686
  /**
3174
- * Optional. Overrides the tenant's default NIPR sync setting during onboarding.
3175
- * Most tenants have this enabled by default, so it usually doesn't need to be set.
3176
- * If specified, this value takes precedence over the tenant's default behavior.
3687
+ * Optional. Overrides the tenant's default NIPR sync setting for all producers in this request.
3688
+ * NPN validation is always performed regardless of this setting.
3689
+ * When true: Fetches full NIPR EntityInfo data after validation (paid lookup)
3690
+ * When false: Skips NIPR EntityInfo fetch, only performs NPN validation
3691
+ * When omitted: Uses the tenant's default configuration
3692
+ *
3693
+ * Cost Implications:
3694
+ * Setting this to true will trigger billable NIPR EntityInfo lookups for each producer
3695
+ * with an NPN, counting against your monthly quota. Consider using false for test data
3696
+ * or when you plan to sync later via SyncProducerWithNIPR.
3177
3697
  *
3178
3698
  * @generated from field: optional bool sync_with_nipr = 3;
3179
3699
  */
@@ -3185,14 +3705,34 @@ export type NewProducersRequest = Message<"producerflow.producer.v1.NewProducers
3185
3705
  */
3186
3706
  export declare const NewProducersRequestSchema: GenMessage<NewProducersRequest>;
3187
3707
  /**
3188
- * NewProducersResponse contains the IDs of all created producers.
3708
+ * NewProducersResponse contains the IDs of all successfully created producers.
3709
+ *
3710
+ * The response provides a list of producer IDs that directly corresponds to the
3711
+ * order of producers in the request, allowing you to map each request entry to
3712
+ * its created resource.
3713
+ *
3714
+ * Order Guarantee:
3715
+ * The producer_ids array maintains the exact same order as the producers array
3716
+ * in the request. For example:
3717
+ * - Request producers[0] → Response producer_ids[0]
3718
+ * - Request producers[1] → Response producer_ids[1]
3719
+ * This ordering guarantee simplifies client-side processing and record keeping.
3720
+ *
3721
+ * Post-Creation Actions:
3722
+ * After receiving this response, you can:
3723
+ * - Use the IDs to fetch full producer details via GetProducer
3724
+ * - Assign producers to locations via AssignProducerToLocations
3725
+ * - Trigger NIPR sync if it was skipped during creation
3726
+ * - Set external IDs via SetExternalID if not provided during creation
3189
3727
  *
3190
3728
  * @generated from message producerflow.producer.v1.NewProducersResponse
3191
3729
  */
3192
3730
  export type NewProducersResponse = Message<"producerflow.producer.v1.NewProducersResponse"> & {
3193
3731
  /**
3194
3732
  * List of UUIDs for the newly created producers.
3195
- * The order matches the order of producers in the request.
3733
+ * These IDs are immediately available for use in subsequent API calls.
3734
+ * The array length will always match the number of producers in the request.
3735
+ * Order is guaranteed to match the request's producer array order.
3196
3736
  *
3197
3737
  * @generated from field: repeated string producer_ids = 1;
3198
3738
  */
@@ -3249,9 +3789,9 @@ export type NewContact = Message<"producerflow.producer.v1.NewContact"> & {
3249
3789
  /**
3250
3790
  * Mailing address of the contact.
3251
3791
  *
3252
- * @generated from field: producerflow.producer.v1.NewContact.Address address = 6;
3792
+ * @generated from field: producerflow.producer.v1.Address address = 6;
3253
3793
  */
3254
- address?: NewContact_Address;
3794
+ address?: Address;
3255
3795
  /**
3256
3796
  * Role or position of the contact within the agency.
3257
3797
  * Required and must be non-empty.
@@ -3277,46 +3817,6 @@ export type NewContact = Message<"producerflow.producer.v1.NewContact"> & {
3277
3817
  * Use `create(NewContactSchema)` to create a new message.
3278
3818
  */
3279
3819
  export declare const NewContactSchema: GenMessage<NewContact>;
3280
- /**
3281
- * Address represents a mailing address for the contact.
3282
- *
3283
- * @generated from message producerflow.producer.v1.NewContact.Address
3284
- */
3285
- export type NewContact_Address = Message<"producerflow.producer.v1.NewContact.Address"> & {
3286
- /**
3287
- * Street address of the contact.
3288
- * Required and must be non-empty.
3289
- *
3290
- * @generated from field: string street = 1;
3291
- */
3292
- street: string;
3293
- /**
3294
- * City of the contact.
3295
- * Required and must be non-empty.
3296
- *
3297
- * @generated from field: string city = 2;
3298
- */
3299
- city: string;
3300
- /**
3301
- * State of the contact's address.
3302
- * Required and must be exactly 2 characters (state code).
3303
- *
3304
- * @generated from field: string state = 3;
3305
- */
3306
- state: string;
3307
- /**
3308
- * Zip code of the contact's address.
3309
- * Required and must be between 1 and 10 characters.
3310
- *
3311
- * @generated from field: string zip = 4;
3312
- */
3313
- zip: string;
3314
- };
3315
- /**
3316
- * Describes the message producerflow.producer.v1.NewContact.Address.
3317
- * Use `create(NewContact_AddressSchema)` to create a new message.
3318
- */
3319
- export declare const NewContact_AddressSchema: GenMessage<NewContact_Address>;
3320
3820
  /**
3321
3821
  * NewContactRequest is used to create a new contact and associate it with an agency.
3322
3822
  *
@@ -3458,9 +3958,11 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3458
3958
  */
3459
3959
  role: string;
3460
3960
  /**
3461
- * @generated from field: producerflow.producer.v1.Contact.Address address = 8;
3961
+ * Mailing address of the contact.
3962
+ *
3963
+ * @generated from field: producerflow.producer.v1.Address address = 8;
3462
3964
  */
3463
- address?: Contact_Address;
3965
+ address?: Address;
3464
3966
  /**
3465
3967
  * National Producer Number (NPN) of the contact, if applicable.
3466
3968
  *
@@ -3479,43 +3981,6 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3479
3981
  * Use `create(ContactSchema)` to create a new message.
3480
3982
  */
3481
3983
  export declare const ContactSchema: GenMessage<Contact>;
3482
- /**
3483
- * Mailing address of the contact.
3484
- * Address represents a mailing address for the contact.
3485
- *
3486
- * @generated from message producerflow.producer.v1.Contact.Address
3487
- */
3488
- export type Contact_Address = Message<"producerflow.producer.v1.Contact.Address"> & {
3489
- /**
3490
- * Street address of the contact.
3491
- *
3492
- * @generated from field: string street = 1;
3493
- */
3494
- street: string;
3495
- /**
3496
- * City of the contact.
3497
- *
3498
- * @generated from field: string city = 2;
3499
- */
3500
- city: string;
3501
- /**
3502
- * State of the contact.
3503
- *
3504
- * @generated from field: string state = 3;
3505
- */
3506
- state: string;
3507
- /**
3508
- * Zip code of the contact.
3509
- *
3510
- * @generated from field: string zip = 4;
3511
- */
3512
- zip: string;
3513
- };
3514
- /**
3515
- * Describes the message producerflow.producer.v1.Contact.Address.
3516
- * Use `create(Contact_AddressSchema)` to create a new message.
3517
- */
3518
- export declare const Contact_AddressSchema: GenMessage<Contact_Address>;
3519
3984
  /**
3520
3985
  * ListAgencyContactsRequest requests all contacts associated with an agency.
3521
3986
  *
@@ -3940,68 +4405,92 @@ export type StopSyncAgencyWithNIPRResponse = Message<"producerflow.producer.v1.S
3940
4405
  */
3941
4406
  export declare const StopSyncAgencyWithNIPRResponseSchema: GenMessage<StopSyncAgencyWithNIPRResponse>;
3942
4407
  /**
3943
- * AgencySummary contains a lightweight summary of an agency for list views.
3944
- * This message contains only the essential fields needed for displaying agencies in a list.
4408
+ * AgencySummary provides essential agency information for list views and quick
4409
+ * reference.
4410
+ *
4411
+ * This message is optimized for displaying agencies in lists, tables, and
4412
+ * search results without the overhead of full NIPR data. It contains only the
4413
+ * most commonly needed fields for agency identification and basic contact
4414
+ * information.
4415
+ *
4416
+ * For complete agency information including NIPR data, licenses, appointments,
4417
+ * and associated producers, use the GetAgencyAndProducers RPC.
3945
4418
  *
3946
4419
  * @generated from message producerflow.producer.v1.AgencySummary
3947
4420
  */
3948
4421
  export type AgencySummary = Message<"producerflow.producer.v1.AgencySummary"> & {
3949
4422
  /**
3950
- * Unique identifier for the agency.
4423
+ * Unique identifier for the agency (UUID format).
4424
+ * Use this ID to retrieve full agency details via GetAgencyAndProducers.
3951
4425
  *
3952
4426
  * @generated from field: string agency_id = 1;
3953
4427
  */
3954
4428
  agencyId: string;
3955
4429
  /**
3956
- * Agency name.
4430
+ * The official name of the agency.
4431
+ * This is typically the legal business name.
3957
4432
  *
3958
4433
  * @generated from field: string name = 2;
3959
4434
  */
3960
4435
  name: string;
3961
4436
  /**
3962
- * Agency email address.
4437
+ * Primary email address for the agency.
4438
+ * Used for general communication and must be unique within the tenant.
3963
4439
  *
3964
4440
  * @generated from field: string email = 3;
3965
4441
  */
3966
4442
  email: string;
3967
4443
  /**
3968
- * Agency phone number.
4444
+ * Main phone number for the agency.
4445
+ * Format may vary but typically includes country code for international numbers.
3969
4446
  *
3970
4447
  * @generated from field: string phone = 4;
3971
4448
  */
3972
4449
  phone: string;
3973
4450
  /**
3974
- * Agency NPN (National Producer Number).
4451
+ * National Producer Number (NPN) assigned by NIPR.
4452
+ * Only present for standard agencies (not sole proprietors).
4453
+ * Empty string if the agency doesn't have an NPN.
3975
4454
  *
3976
4455
  * @generated from field: string npn = 5;
3977
4456
  */
3978
4457
  npn: string;
3979
4458
  /**
3980
- * Agency FEIN (Federal Employer Identification Number).
4459
+ * Federal Employer Identification Number (FEIN).
4460
+ * Nine-digit number assigned by the IRS for tax purposes.
4461
+ * May be empty for sole proprietors or agencies without FEIN.
3981
4462
  *
3982
4463
  * @generated from field: string fein = 6;
3983
4464
  */
3984
4465
  fein: string;
3985
4466
  /**
3986
4467
  * Organization ID that the agency belongs to.
4468
+ * References organizations like aggregators or agency networks.
4469
+ * Optional field - null if the agency isn't part of an organization.
3987
4470
  *
3988
4471
  * @generated from field: optional string organization_id = 7;
3989
4472
  */
3990
4473
  organizationId?: string;
3991
4474
  /**
3992
- * Whether this is an internal tenant agency.
4475
+ * Indicates whether this is an internal tenant agency.
4476
+ * True for agencies owned/operated by the tenant.
4477
+ * False for external/partner agencies.
3993
4478
  *
3994
4479
  * @generated from field: bool is_tenant_agency = 8;
3995
4480
  */
3996
4481
  isTenantAgency: boolean;
3997
4482
  /**
3998
- * Whether this is a sole proprietor.
4483
+ * Indicates whether this agency is a sole proprietor.
4484
+ * True: Individual producer operating as their own agency (ENTITY_TYPE_SOLE_PROPRIETOR).
4485
+ * False: Standard agency with multiple producers (ENTITY_TYPE_AGENCY).
3999
4486
  *
4000
4487
  * @generated from field: bool is_sole_proprietor = 9;
4001
4488
  */
4002
4489
  isSoleProprietor: boolean;
4003
4490
  /**
4004
- * When the agency was created.
4491
+ * Timestamp when the agency was created in the system.
4492
+ * Used for sorting agencies by creation date in list views.
4493
+ * Always in UTC timezone.
4005
4494
  *
4006
4495
  * @generated from field: google.protobuf.Timestamp created_at = 10;
4007
4496
  */
@@ -4013,50 +4502,73 @@ export type AgencySummary = Message<"producerflow.producer.v1.AgencySummary"> &
4013
4502
  */
4014
4503
  export declare const AgencySummarySchema: GenMessage<AgencySummary>;
4015
4504
  /**
4016
- * ListAgenciesRequest requests a list of agencies associated with the tenant.
4017
- * Supports optional filtering and pagination parameters.
4505
+ * ListAgenciesRequest enables flexible querying of agencies with multiple filter
4506
+ * options and pagination support.
4507
+ *
4508
+ * All filters are optional and can be combined for precise results. When multiple
4509
+ * filters are specified, they are applied with AND logic (agencies must match all
4510
+ * specified criteria).
4511
+ *
4512
+ * Example Use Cases:
4513
+ * - Get all agencies in an organization: set organization_id
4514
+ * - Search for an agency by name: set search_query
4515
+ * - Find failing NIPR syncs: set nipr_sync_statuses to [NIPR_SYNC_STATE_FAILING]
4516
+ * - Get sole proprietors only: set entity_type to ENTITY_TYPE_SOLE_PROPRIETOR
4517
+ * - Paginate through all agencies: use pagination with page_token
4018
4518
  *
4019
4519
  * @generated from message producerflow.producer.v1.ListAgenciesRequest
4020
4520
  */
4021
4521
  export type ListAgenciesRequest = Message<"producerflow.producer.v1.ListAgenciesRequest"> & {
4022
4522
  /**
4023
4523
  * Optional. Filter agencies by organization ID.
4024
- * If provided, only agencies belonging to this organization will be returned.
4524
+ * Only agencies belonging to this specific organization will be returned.
4525
+ * Must be a valid UUID if provided.
4526
+ * Use ListOrganizations to get valid organization IDs.
4025
4527
  *
4026
4528
  * @generated from field: optional string organization_id = 1;
4027
4529
  */
4028
4530
  organizationId?: string;
4029
4531
  /**
4030
- * Optional. Search query to filter agencies by name, NPN, or email.
4031
- * If provided, only agencies matching the search query will be returned.
4532
+ * Optional. Free-text search across agency fields.
4533
+ * Searches in: agency name, NPN, and email address.
4534
+ * The search is case-insensitive and uses partial matching.
4535
+ * Example: "smith" will match "Smith Insurance Agency" and "john.smith@agency.com"
4032
4536
  *
4033
4537
  * @generated from field: optional string search_query = 2;
4034
4538
  */
4035
4539
  searchQuery?: string;
4036
4540
  /**
4037
- * Optional. Pagination parameters.
4038
- * If not provided, defaults to page_size=50.
4541
+ * Optional. Pagination parameters for controlling result set size and navigation.
4542
+ * If not provided, defaults to page_size=50 with no offset.
4543
+ * Maximum allowed page_size is 200; values above this will be capped.
4039
4544
  *
4040
4545
  * @generated from field: producerflow.producer.v1.Pagination pagination = 3;
4041
4546
  */
4042
4547
  pagination?: Pagination;
4043
4548
  /**
4044
- * Optional. Filter by agency type (internal vs external).
4045
- * If not provided, returns all agencies regardless of type.
4549
+ * Optional. Filter by agency classification (internal vs external).
4550
+ * - AGENCY_TYPE_INTERNAL: Agencies owned/operated by the tenant
4551
+ * - AGENCY_TYPE_EXTERNAL: Partner or third-party agencies
4552
+ * If not specified, returns both internal and external agencies.
4046
4553
  *
4047
4554
  * @generated from field: optional producerflow.producer.v1.AgencyType agency_type = 4;
4048
4555
  */
4049
4556
  agencyType?: AgencyType;
4050
4557
  /**
4051
- * Optional. Filter by entity type (sole proprietor vs agency).
4052
- * If not provided, returns all agencies regardless of entity type.
4558
+ * Optional. Filter by business entity structure.
4559
+ * - ENTITY_TYPE_SOLE_PROPRIETOR: Individual producers as agencies
4560
+ * - ENTITY_TYPE_AGENCY: Standard multi-producer agencies
4561
+ * If not specified, returns both sole proprietors and standard agencies.
4053
4562
  *
4054
4563
  * @generated from field: optional producerflow.producer.v1.EntityType entity_type = 5;
4055
4564
  */
4056
4565
  entityType?: EntityType;
4057
4566
  /**
4058
- * Optional. Filter by NIPR sync status.
4059
- * If not provided, returns all agencies regardless of sync status.
4567
+ * Optional. Filter by NIPR synchronization status.
4568
+ * Multiple statuses can be specified to match agencies in any of those states.
4569
+ * Useful for monitoring sync health and identifying agencies needing attention.
4570
+ * Valid values: ACTIVE, FAILING, PENDING, DISABLED
4571
+ * If empty, returns agencies in all sync states.
4060
4572
  *
4061
4573
  * @generated from field: repeated producerflow.producer.v1.NIPRSyncState nipr_sync_statuses = 6;
4062
4574
  */
@@ -4068,27 +4580,45 @@ export type ListAgenciesRequest = Message<"producerflow.producer.v1.ListAgencies
4068
4580
  */
4069
4581
  export declare const ListAgenciesRequestSchema: GenMessage<ListAgenciesRequest>;
4070
4582
  /**
4071
- * ListAgenciesResponse contains the list of agencies matching the filter criteria.
4583
+ * ListAgenciesResponse provides paginated agency results with metadata for
4584
+ * navigation and total counts.
4585
+ *
4586
+ * The response is optimized for UI display with summary data only. For complete
4587
+ * agency information including NIPR data, use GetAgencyAndProducers with the
4588
+ * agency_id from the summary.
4589
+ *
4590
+ * Pagination Notes:
4591
+ * - Results are always ordered by creation date (newest first)
4592
+ * - Page tokens are opaque and should not be constructed by clients
4593
+ * - Total count reflects all matching agencies, not just the current page
4594
+ * - Empty agencies list with total_count > 0 indicates you've paginated past the end
4072
4595
  *
4073
4596
  * @generated from message producerflow.producer.v1.ListAgenciesResponse
4074
4597
  */
4075
4598
  export type ListAgenciesResponse = Message<"producerflow.producer.v1.ListAgenciesResponse"> & {
4076
4599
  /**
4077
4600
  * List of agency summaries matching the filter criteria.
4078
- * The agencies are ordered by creation date, most recent first.
4601
+ * Ordered by creation date with the most recently created agencies first.
4602
+ * Will be empty if no agencies match the filters or if paginating past the last page.
4603
+ * Maximum of page_size agencies per response (default 50, max 200).
4079
4604
  *
4080
4605
  * @generated from field: repeated producerflow.producer.v1.AgencySummary agencies = 1;
4081
4606
  */
4082
4607
  agencies: AgencySummary[];
4083
4608
  /**
4084
- * A token that can be sent as `page_token` to retrieve the next page.
4085
- * If this field is omitted, there are no subsequent pages.
4609
+ * Pagination token for retrieving the next page of results.
4610
+ * Pass this value as page_token in the next request to continue pagination.
4611
+ * Empty string indicates this is the last page of results.
4612
+ * Tokens are opaque and their format may change; treat as black box.
4086
4613
  *
4087
4614
  * @generated from field: string next_page_token = 2;
4088
4615
  */
4089
4616
  nextPageToken: string;
4090
4617
  /**
4091
- * Total number of agencies matching the filter criteria.
4618
+ * Total number of agencies matching the filter criteria across all pages.
4619
+ * This count is independent of pagination and represents the full result set.
4620
+ * Useful for displaying "Showing X-Y of Z agencies" in UIs.
4621
+ * Will be 0 if no agencies match the specified filters.
4092
4622
  *
4093
4623
  * @generated from field: int32 total_count = 3;
4094
4624
  */
@@ -4100,16 +4630,33 @@ export type ListAgenciesResponse = Message<"producerflow.producer.v1.ListAgencie
4100
4630
  */
4101
4631
  export declare const ListAgenciesResponseSchema: GenMessage<ListAgenciesResponse>;
4102
4632
  /**
4103
- * ListOrganizationsRequest requests a list of all organizations associated with the tenant.
4104
- * This request requires no parameters and will return all organizations that
4105
- * the authenticated tenant has access to.
4633
+ * ListOrganizationsRequest requests a list of all organizations associated with
4634
+ * the authenticated tenant.
4635
+ *
4636
+ * Organizations provide a way to group agencies into logical business units,
4637
+ * networks, or aggregator relationships. This endpoint returns all organizations
4638
+ * accessible to your tenant, which can be used to:
4639
+ * - Display organization hierarchies in user interfaces
4640
+ * - Filter agencies by organization
4641
+ * - Apply organization-specific business rules or workflows
4642
+ *
4643
+ * The response supports pagination for tenants with large numbers of organizations.
4106
4644
  *
4107
4645
  * @generated from message producerflow.producer.v1.ListOrganizationsRequest
4108
4646
  */
4109
4647
  export type ListOrganizationsRequest = Message<"producerflow.producer.v1.ListOrganizationsRequest"> & {
4110
4648
  /**
4111
- * Optional. Pagination parameters.
4112
- * If not provided, defaults to page_size=50.
4649
+ * Optional pagination parameters to control the result set.
4650
+ *
4651
+ * Pagination allows you to retrieve organizations in manageable chunks:
4652
+ * - page_size: Number of organizations to return (default: 50, max: 200)
4653
+ * - page_token: Token from previous response to get the next page
4654
+ *
4655
+ * Example usage:
4656
+ * - First request: page_size=100 (returns first 100 organizations)
4657
+ * - Subsequent requests: Use next_page_token from previous response
4658
+ *
4659
+ * If omitted, returns the first 50 organizations.
4113
4660
  *
4114
4661
  * @generated from field: producerflow.producer.v1.Pagination pagination = 1;
4115
4662
  */
@@ -4121,36 +4668,71 @@ export type ListOrganizationsRequest = Message<"producerflow.producer.v1.ListOrg
4121
4668
  */
4122
4669
  export declare const ListOrganizationsRequestSchema: GenMessage<ListOrganizationsRequest>;
4123
4670
  /**
4124
- * Organization represents a logical grouping or hierarchical structure within a tenant.
4125
- * Organizations can be used to organize agencies into meaningful groups
4126
- * such as agency networks, aggregators, or other business hierarchies.
4671
+ * Organization represents a logical grouping or hierarchical structure for managing agencies.
4672
+ *
4673
+ * Organizations enable better management of insurance distribution networks by grouping
4674
+ * agencies into meaningful business units. Common organization types include:
4675
+ * - Agency networks or clusters
4676
+ * - Aggregators
4677
+ * - Geographic regions or territories
4678
+ * - Franchise groups or corporate structures
4679
+ * - Market segments or product lines
4680
+ *
4127
4681
  *
4128
4682
  * @generated from message producerflow.producer.v1.Organization
4129
4683
  */
4130
4684
  export type Organization = Message<"producerflow.producer.v1.Organization"> & {
4131
4685
  /**
4132
- * Unique identifier for the organization.
4133
- * This is a UUID that can be used to reference the organization in other API calls.
4686
+ * Unique identifier for the organization (UUID format).
4687
+ *
4688
+ * This ID is system-generated and immutable. Use this ID to:
4689
+ * - Reference the organization in API calls (GetOrganization, agency creation)
4690
+ * - Establish relationships between organizations and agencies
4691
+ * - Track organization-level metrics and reporting
4692
+ *
4693
+ * Format: Standard UUID v4 (e.g., "123e4567-e89b-12d3-a456-426614174000")
4134
4694
  *
4135
4695
  * @generated from field: string id = 1;
4136
4696
  */
4137
4697
  id: string;
4138
4698
  /**
4139
4699
  * Display name of the organization.
4140
- * This is the human-readable name that identifies the organization to users.
4700
+ *
4701
+ * This is the human-readable name shown in user interfaces and reports.
4702
+ * Names must be unique within your tenant (case-insensitive comparison).
4703
+ *
4704
+ * Best Practices:
4705
+ * - Use clear, descriptive names that reflect the organization's purpose
4706
+ * - Include geographic or business unit identifiers when relevant
4707
+ * - Avoid special characters that may cause display issues
4708
+ *
4709
+ * Examples: "West Coast Network", "AgencyHero Aggregator", "Premium Partners Group"
4141
4710
  *
4142
4711
  * @generated from field: string name = 2;
4143
4712
  */
4144
4713
  name: string;
4145
4714
  /**
4146
4715
  * External identifier for the organization.
4147
- * This is the identifier used by the tenant's system to identify the organization.
4716
+ *
4717
+ * This field maps the ProducerFlow organization to your internal system's
4718
+ * organization ID, enabling bi-directional synchronization and integration.
4719
+ *
4720
+ * Use Cases:
4721
+ * - Maintain references to your CRM or ERP system
4722
+ * - Enable data synchronization between systems
4723
+ * - Support migration from legacy systems
4724
+ *
4725
+ * This field is optional and can be any string format meaningful to your system.
4726
+ * Examples: "ORG-12345", "west-coast-001", UUID from your system
4148
4727
  *
4149
4728
  * @generated from field: string external_id = 3;
4150
4729
  */
4151
4730
  externalId: string;
4152
4731
  /**
4153
- * Contact email address for the organization.
4732
+ * Primary contact email address for the organization.
4733
+ *
4734
+ * Optional field. If provided, must be a valid email format.
4735
+ * Example: "admin@westcoastnetwork.com"
4154
4736
  *
4155
4737
  * @generated from field: string email = 4;
4156
4738
  */
@@ -4162,31 +4744,61 @@ export type Organization = Message<"producerflow.producer.v1.Organization"> & {
4162
4744
  */
4163
4745
  export declare const OrganizationSchema: GenMessage<Organization>;
4164
4746
  /**
4165
- * ListOrganizationsResponse contains the list of organizations associated with the tenant.
4166
- * The organizations are returned ordered by name. If the tenant has no organizations,
4167
- * the organizations list will be empty.
4747
+ * ListOrganizationsResponse contains the paginated list of organizations for the tenant.
4748
+ *
4749
+ * The response includes all organizations accessible to your authenticated tenant,
4750
+ * ordered alphabetically by name for consistent display. Empty results indicate
4751
+ * that your tenant either doesn't use organizational hierarchies or has no
4752
+ * organizations configured yet.
4753
+ *
4754
+ * Pagination is automatically applied to large result sets to ensure optimal
4755
+ * performance and reasonable response sizes.
4168
4756
  *
4169
4757
  * @generated from message producerflow.producer.v1.ListOrganizationsResponse
4170
4758
  */
4171
4759
  export type ListOrganizationsResponse = Message<"producerflow.producer.v1.ListOrganizationsResponse"> & {
4172
4760
  /**
4173
4761
  * List of organizations associated with the tenant.
4174
- * Each organization includes its unique identifier and display name.
4175
- * The list may be empty if no organizations are associated with the tenant.
4176
- * Organizations are ordered alphabetically by name.
4762
+ *
4763
+ * Each organization in the list includes:
4764
+ * - Unique identifier (id) for API operations
4765
+ * - Display name for user interfaces
4766
+ * - External ID for system integration
4767
+ * - Contact email (if configured)
4768
+ *
4769
+ * The list may be empty ([]) if:
4770
+ * - No organizations are configured for your tenant
4771
+ * - Your tenant doesn't use organizational hierarchies
4177
4772
  *
4178
4773
  * @generated from field: repeated producerflow.producer.v1.Organization organizations = 1;
4179
4774
  */
4180
4775
  organizations: Organization[];
4181
4776
  /**
4182
- * A token that can be sent as `page_token` to retrieve the next page.
4183
- * If this field is omitted, there are no subsequent pages.
4777
+ * Pagination token for retrieving the next page of results.
4778
+ *
4779
+ * When present, indicates more organizations are available. Pass this
4780
+ * token as the page_token in the next ListOrganizationsRequest to
4781
+ * retrieve the subsequent page.
4782
+ *
4783
+ * Empty string or omitted field indicates this is the last page.
4784
+ *
4785
+ * Important: Tokens are opaque and may expire. Don't store tokens
4786
+ * long-term; retrieve fresh data when needed.
4184
4787
  *
4185
4788
  * @generated from field: string next_page_token = 2;
4186
4789
  */
4187
4790
  nextPageToken: string;
4188
4791
  /**
4189
- * Total number of organizations matching the filter criteria.
4792
+ * Total count of organizations matching the filter criteria.
4793
+ *
4794
+ * This count represents the total number of organizations available
4795
+ * to your tenant, regardless of pagination. Use this to:
4796
+ * - Display result counts in user interfaces ("Showing 1-50 of 237")
4797
+ * - Calculate the number of pages available
4798
+ * - Determine if pagination is needed
4799
+ *
4800
+ * The count remains consistent across paginated requests unless
4801
+ * organizations are added or removed between calls.
4190
4802
  *
4191
4803
  * @generated from field: int32 total_count = 3;
4192
4804
  */
@@ -4198,14 +4810,26 @@ export type ListOrganizationsResponse = Message<"producerflow.producer.v1.ListOr
4198
4810
  */
4199
4811
  export declare const ListOrganizationsResponseSchema: GenMessage<ListOrganizationsResponse>;
4200
4812
  /**
4201
- * GetOrganizationRequest specifies which organization to retrieve.
4813
+ * GetOrganizationRequest specifies which organization to retrieve detailed information for.
4814
+ *
4815
+ * Use this request to fetch comprehensive details about a specific organization,
4816
+ * including all agencies assigned to it and their current status.
4202
4817
  *
4203
4818
  * @generated from message producerflow.producer.v1.GetOrganizationRequest
4204
4819
  */
4205
4820
  export type GetOrganizationRequest = Message<"producerflow.producer.v1.GetOrganizationRequest"> & {
4206
4821
  /**
4207
4822
  * Unique identifier of the organization to retrieve.
4208
- * Must be a valid UUID.
4823
+ *
4824
+ * This must be a valid UUID that was previously returned from:
4825
+ * - ListOrganizations response
4826
+ * - Agency creation response (when agency is assigned to an organization)
4827
+ * - Other API calls that reference organizations
4828
+ *
4829
+ * The organization must belong to your authenticated tenant; attempting
4830
+ * to access organizations from other tenants will result in a NOT_FOUND error.
4831
+ *
4832
+ * Format: Standard UUID v4 (e.g., "123e4567-e89b-12d3-a456-426614174000")
4209
4833
  *
4210
4834
  * @generated from field: string organization_id = 1;
4211
4835
  */
@@ -4217,13 +4841,13 @@ export type GetOrganizationRequest = Message<"producerflow.producer.v1.GetOrgani
4217
4841
  */
4218
4842
  export declare const GetOrganizationRequestSchema: GenMessage<GetOrganizationRequest>;
4219
4843
  /**
4220
- * GetOrganizationResponse contains the details of the requested organization.
4844
+ * GetOrganizationResponse contains details about the requested organization.
4221
4845
  *
4222
4846
  * @generated from message producerflow.producer.v1.GetOrganizationResponse
4223
4847
  */
4224
4848
  export type GetOrganizationResponse = Message<"producerflow.producer.v1.GetOrganizationResponse"> & {
4225
4849
  /**
4226
- * The requested organization.
4850
+ * The requested organization with all available details.
4227
4851
  *
4228
4852
  * @generated from field: producerflow.producer.v1.Organization organization = 1;
4229
4853
  */
@@ -4234,6 +4858,56 @@ export type GetOrganizationResponse = Message<"producerflow.producer.v1.GetOrgan
4234
4858
  * Use `create(GetOrganizationResponseSchema)` to create a new message.
4235
4859
  */
4236
4860
  export declare const GetOrganizationResponseSchema: GenMessage<GetOrganizationResponse>;
4861
+ /**
4862
+ * CreateOrganizationRequest contains the information needed to create a new organization.
4863
+ *
4864
+ * @generated from message producerflow.producer.v1.CreateOrganizationRequest
4865
+ */
4866
+ export type CreateOrganizationRequest = Message<"producerflow.producer.v1.CreateOrganizationRequest"> & {
4867
+ /**
4868
+ * Required. The display name of the organization.
4869
+ * Must be unique within the tenant.
4870
+ *
4871
+ * @generated from field: string name = 1;
4872
+ */
4873
+ name: string;
4874
+ /**
4875
+ * Optional. The external identifier for the organization.
4876
+ * This is the identifier used by the tenant's system to identify the organization.
4877
+ *
4878
+ * @generated from field: string external_id = 2;
4879
+ */
4880
+ externalId: string;
4881
+ /**
4882
+ * Optional. The contact email address for the organization.
4883
+ *
4884
+ * @generated from field: string email = 3;
4885
+ */
4886
+ email: string;
4887
+ };
4888
+ /**
4889
+ * Describes the message producerflow.producer.v1.CreateOrganizationRequest.
4890
+ * Use `create(CreateOrganizationRequestSchema)` to create a new message.
4891
+ */
4892
+ export declare const CreateOrganizationRequestSchema: GenMessage<CreateOrganizationRequest>;
4893
+ /**
4894
+ * CreateOrganizationResponse contains the result of creating a new organization.
4895
+ *
4896
+ * @generated from message producerflow.producer.v1.CreateOrganizationResponse
4897
+ */
4898
+ export type CreateOrganizationResponse = Message<"producerflow.producer.v1.CreateOrganizationResponse"> & {
4899
+ /**
4900
+ * The unique identifier of the newly created organization.
4901
+ *
4902
+ * @generated from field: string organization_id = 1;
4903
+ */
4904
+ organizationId: string;
4905
+ };
4906
+ /**
4907
+ * Describes the message producerflow.producer.v1.CreateOrganizationResponse.
4908
+ * Use `create(CreateOrganizationResponseSchema)` to create a new message.
4909
+ */
4910
+ export declare const CreateOrganizationResponseSchema: GenMessage<CreateOrganizationResponse>;
4237
4911
  /**
4238
4912
  * CreateProducerUploadURLRequest contains information needed to generate
4239
4913
  * a producer upload URL. This includes the agency NPN.
@@ -4642,34 +5316,58 @@ export type UnassignProducerFromLocationsResponse = Message<"producerflow.produc
4642
5316
  */
4643
5317
  export declare const UnassignProducerFromLocationsResponseSchema: GenMessage<UnassignProducerFromLocationsResponse>;
4644
5318
  /**
4645
- * EntityType defines the business entity type for an agency.
5319
+ * EntityType defines the business structure of an agency.
5320
+ *
5321
+ * This determines important business rules around NPNs, producers, and
5322
+ * onboarding requirements.
4646
5323
  *
4647
5324
  * @generated from enum producerflow.producer.v1.EntityType
4648
5325
  */
4649
5326
  export declare enum EntityType {
4650
5327
  /**
4651
5328
  * Default unspecified value. Do not use.
5329
+ * This value is invalid and will be rejected by the API.
4652
5330
  *
4653
5331
  * @generated from enum value: ENTITY_TYPE_UNSPECIFIED = 0;
4654
5332
  */
4655
5333
  UNSPECIFIED = 0,
4656
5334
  /**
4657
- * An individual producer operating as their own agency.
4658
- * For this type, an agency NPN is not allowed, and additional producers are not supported.
5335
+ * Sole proprietor: An individual insurance producer operating independently.
5336
+ *
5337
+ * Business Rules for Sole Proprietors:
5338
+ * - Cannot have a separate agency NPN (only the principal's NPN is used)
5339
+ * - Cannot have additional producers beyond the principal
5340
+ * - The principal producer IS the agency
5341
+ * - FEIN is optional
5342
+ *
5343
+ * Use this type for independent agents who operate alone.
4659
5344
  *
4660
5345
  * @generated from enum value: ENTITY_TYPE_SOLE_PROPRIETOR = 1;
4661
5346
  */
4662
5347
  SOLE_PROPRIETOR = 1,
4663
5348
  /**
4664
- * A standard insurance agency that can have multiple producers.
4665
- * For this type, either NPN or FEIN is required.
5349
+ * Standard insurance agency: A business entity with multiple producers.
5350
+ *
5351
+ * Business Rules for Agencies:
5352
+ * - Must provide either an agency NPN or FEIN (or both)
5353
+ * - Can have multiple producers in addition to the principal
5354
+ * - The agency is a separate legal entity from its producers
5355
+ * - Typically has business structure (LLC, Corporation, Partnership, etc.)
5356
+ *
5357
+ * Use this type for traditional insurance agencies with multiple agents.
4666
5358
  *
4667
5359
  * @generated from enum value: ENTITY_TYPE_AGENCY = 2;
4668
5360
  */
4669
5361
  AGENCY = 2,
4670
5362
  /**
4671
- * Ask during onboarding because the entity type is not known when the agency onboarding url is created.
4672
- * The UI will ask the user to select the entity type.
5363
+ * Dynamic determination: Let the user select during onboarding.
5364
+ *
5365
+ * Use this value only when generating onboarding URLs and you don't know
5366
+ * the entity type in advance. The onboarding form will present both options
5367
+ * and let the user choose.
5368
+ *
5369
+ * This value is ONLY valid for CreateAgencyOnboardingURL and will be rejected
5370
+ * by NewAgency and other direct creation endpoints.
4673
5371
  *
4674
5372
  * @generated from enum value: ENTITY_TYPE_ASK_DURING_ONBOARDING = 3;
4675
5373
  */
@@ -4750,26 +5448,73 @@ export declare enum NIPRSyncState {
4750
5448
  */
4751
5449
  export declare const NIPRSyncStateSchema: GenEnum<NIPRSyncState>;
4752
5450
  /**
4753
- * ProducerService provides a comprehensive API for managing insurance producers
4754
- * and agencies, including onboarding, data synchronization, and integration with
4755
- * external systems like NIPR for license verification.
5451
+ * ProducerService provides a comprehensive API for managing insurance
5452
+ * producers and agencies. This service simplifies producer and agency
5453
+ * onboarding, data synchronization, and integration with the National Insurance
5454
+ * Producer Registry (NIPR).
5455
+ *
5456
+ * Key capabilities:
5457
+ * - Producer and agency onboarding with self-service URLs
5458
+ * - Automatic synchronization of license, appointment, and regulatory data from NIPR
5459
+ * - NPN (National Producer Number) validation and lookup
5460
+ * - Multi-location management for agencies
5461
+ * - Integration with NIPR PDB Gateway, PDB Alerts, and NPN Lookup services
4756
5462
  *
4757
- * Available endpoints:
4758
- * UAT (User Acceptance Testing): https://api.uat.producerflow.com
4759
- * Production: https://api.producerflow.com
5463
+ * NIPR Integration:
5464
+ * This service automatically fetches and maintains up-to-date licensing
5465
+ * information, carrier appointments, and regulatory actions from NIPR. Most
5466
+ * NIPR sync operations are billable and count against your monthly unique NPN
5467
+ * quota. Enable PDB Alerts synchronization to receive automatic daily updates
5468
+ * and reduce manual sync costs.
4760
5469
  *
4761
- * RPCs for starting the onboarding agency process.
5470
+ * Authentication:
5471
+ * All endpoints require API key authentication provided via the Authorization header.
5472
+ *
5473
+ * Onboarding Operations
5474
+ * Generate self-service URLs and create agencies/producers with NIPR validation.
4762
5475
  *
4763
5476
  * @generated from service producerflow.producer.v1.ProducerService
4764
5477
  */
4765
5478
  export declare const ProducerService: GenService<{
4766
5479
  /**
4767
- * CreateAgencyOnboardingURL generates a URL that can be used to onboard a new agency.
4768
- * The URL contains encoded information about the agency defaults and tenant context.
4769
- * All fields in the request are optional - you can provide as much or as little
4770
- * information as available. Any missing information will be collected during
4771
- * the onboarding process.
4772
- * Returns a URL string that can be shared with the agency for self-onboarding.
5480
+ * CreateAgencyOnboardingURL generates a secure, pre-filled URL for agency
5481
+ * self-onboarding.
5482
+ *
5483
+ * Use this endpoint to create personalized onboarding links that can be
5484
+ * shared with agencies. The URL encodes agency defaults, tenant context, and
5485
+ * optional pre-filled information to streamline the onboarding experience.
5486
+ *
5487
+ * All fields in the request are optional. Provide as much or as little
5488
+ * information as available - any missing data will be collected through the
5489
+ * onboarding flow.
5490
+ *
5491
+ * Typical Workflow:
5492
+ * 1. Generate onboarding URL with optional pre-filled data (agency name, NPN,
5493
+ * principal info)
5494
+ * 2. Share URL with agency contact via email or portal
5495
+ * 3. Agency completes onboarding form through the URL
5496
+ * 4. System validates NPN with NIPR and creates agency record
5497
+ * 5. Optionally sync with NIPR to fetch licenses and appointments
5498
+ *
5499
+ * Validation Rules:
5500
+ * All fields in the request are optional. The system generates valid URLs
5501
+ * even with an empty request. When fields are provided:
5502
+ * - entity_type: Must be ENTITY_TYPE_SOLE_PROPRIETOR (1), ENTITY_TYPE_AGENCY (2),
5503
+ * or ENTITY_TYPE_ASK_DURING_ONBOARDING (3). This is the only endpoint where
5504
+ * ENTITY_TYPE_ASK_DURING_ONBOARDING is valid.
5505
+ * - email: Must be a valid email format if provided
5506
+ * - npn: Must be a valid NPN format (2-10 digits) if provided. Note that NPN
5507
+ * validation against NIPR occurs during onboarding, not during URL generation.
5508
+ * - fein: Must be exactly 9 digits if provided
5509
+ * - organization_id: Must be a valid organization ID belonging to your tenant if provided
5510
+ * - principal.email: Must be a valid email format if provided
5511
+ * - principal.npn: Must be a valid NPN format (2-10 digits) if provided
5512
+ * - principal.tenant_id: Maximum 255 characters if provided
5513
+ *
5514
+ * Returns:
5515
+ * A time-limited URL string that can be shared with the agency for
5516
+ * self-service onboarding.
5517
+ *
4773
5518
  *
4774
5519
  * @generated from rpc producerflow.producer.v1.ProducerService.CreateAgencyOnboardingURL
4775
5520
  */
@@ -4779,10 +5524,43 @@ export declare const ProducerService: GenService<{
4779
5524
  output: typeof CreateAgencyOnboardingURLResponseSchema;
4780
5525
  };
4781
5526
  /**
4782
- * CreateProducerOnboardingURL generates a secure, time-limited link for onboarding a new producer
4783
- * with optional pre-filled NPN. The URL can be shared directly with the producer.
4784
- * The generated URL will take the producer through the onboarding flow with the NPN field
4785
- * pre-populated if provided, reducing friction in the onboarding process.
5527
+ * CreateProducerOnboardingURL generates a secure, pre-filled URL for producer
5528
+ * self-onboarding.
5529
+ *
5530
+ * Use this endpoint to create personalized onboarding links for individual
5531
+ * producers joining an existing agency. The URL can include optional
5532
+ * pre-filled data like NPN, name, email, and address to reduce manual data
5533
+ * entry.
5534
+ *
5535
+ * The producer must be associated with an existing agency. Use
5536
+ * CreateAgencyOnboardingURL if you need to onboard an agency and its
5537
+ * principal together.
5538
+ *
5539
+ * Typical Workflow:
5540
+ * 1. Generate producer onboarding URL with agency_id and optional pre-filled data
5541
+ * 2. Share URL with producer via email
5542
+ * 3. Producer completes onboarding form through the URL
5543
+ * 4. System validates NPN with NIPR and associates producer with agency
5544
+ * 5. Optionally sync with NIPR to fetch producer licenses and appointments
5545
+ *
5546
+ * Validation Rules:
5547
+ * - agency_id: Required. must be a valid UUID of an agency belonging
5548
+ * to your tenant.
5549
+ * - producer_data: All fields are optional. When provided:
5550
+ * - npn: Must be a valid NPN format (1-10 characters). Note that NPN validation
5551
+ * against NIPR occurs during onboarding, not during URL generation.
5552
+ * - email: Must be a valid email format if provided
5553
+ * - mailing_address.state: Must be exactly 2 characters (state code) if provided
5554
+ * - mailing_address.zip: Must be 1-10 characters if provided
5555
+ *
5556
+ * Returns:
5557
+ * A time-limited URL string that can be shared with the producer for
5558
+ * self-service onboarding.
5559
+ *
5560
+ * Common Error Codes:
5561
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
5562
+ * - INVALID_ARGUMENT: Invalid NPN provided (not found in NIPR)
5563
+ *
4786
5564
  *
4787
5565
  * @generated from rpc producerflow.producer.v1.ProducerService.CreateProducerOnboardingURL
4788
5566
  */
@@ -4792,7 +5570,88 @@ export declare const ProducerService: GenService<{
4792
5570
  output: typeof CreateProducerOnboardingURLResponseSchema;
4793
5571
  };
4794
5572
  /**
4795
- * NewAgency creates a new agency, optionally with associated producers. It performs the following validation checks: Ensures all required fields are present and valid. Checks whether the NPN is already registered. Verifies agency and principal information with NIPR. Business rules: Sole proprietors can't have an agency NPN or additional producers. Regular agencies must provide either an NPN or a FEIN. If validation passes, it creates the agency, principal, and any producers. Returns the IDs of the created agency, principal, and producers.
5573
+ * NewAgency creates a new agency with principal and optional additional producers.
5574
+ *
5575
+ * This is the programmatic alternative to CreateAgencyOnboardingURL - use
5576
+ * this when you want to create agencies directly via API instead of through a
5577
+ * self-service form.
5578
+ *
5579
+ * Entity Type Rules:
5580
+ * - ENTITY_TYPE_SOLE_PROPRIETOR: Individual producer operating as their own agency.
5581
+ * Cannot have an agency NPN. Only the principal is created.
5582
+ * - ENTITY_TYPE_AGENCY: Standard insurance agency with multiple producers.
5583
+ * Must provide either an NPN or FEIN. Can have multiple producers beyond the principal.
5584
+ *
5585
+ * NIPR Validation and Sync:
5586
+ * The system performs free NIPR API lookups to validate NPNs before
5587
+ * creation. If sync_with_nipr is true (or tenant default), the system
5588
+ * performs paid NIPR EntityInfo lookups to fetch complete license, appointment,
5589
+ * and regulatory data.
5590
+ *
5591
+ * Validation Performed:
5592
+ * - Required fields are present and valid
5593
+ * - Email addresses are unique within tenant
5594
+ * - Agency NPN exists in NIPR (if provided)
5595
+ * - Principal NPN exists in NIPR
5596
+ * - Entity type rules are followed
5597
+ * - Principal and subsequent producers last names must match NIPR records for the given NPN
5598
+ *
5599
+ * Validation Rules:
5600
+ * Proto validation (format checks):
5601
+ * - agency: Required field containing all agency information
5602
+ * - agency.name: Required, must be non-empty
5603
+ * - agency.email: Required, must be a valid email format
5604
+ * - agency.phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
5605
+ * - agency.entity_type: Required, must be ENTITY_TYPE_SOLE_PROPRIETOR (1) or
5606
+ * ENTITY_TYPE_AGENCY (2). ENTITY_TYPE_ASK_DURING_ONBOARDING is NOT valid here.
5607
+ * - agency.fein: Optional, if provided must be exactly 9 digits. Required for
5608
+ * ENTITY_TYPE_AGENCY if NPN is not provided.
5609
+ * - agency.principal: Required, contains principal producer information
5610
+ * - principal.first_name: Required, must be non-empty
5611
+ * - principal.last_name: Required, must be non-empty
5612
+ * - principal.email: Required, must be a valid email format
5613
+ * - principal.npn: Required, must be 1-10 characters
5614
+ * - principal.phone: Optional, if provided must match E.164 pattern
5615
+ * - principal.tenant_id: Optional, maximum 255 characters
5616
+ * - agency.bank_account (optional, if provided all subfields are required):
5617
+ * - account_number: 8-17 characters
5618
+ * - routing_number: Exactly 9 characters
5619
+ * - account_type: Required, must be CHECKING (1) or SAVINGS (2)
5620
+ * - account_holder_name: Required, must be non-empty
5621
+ * - agency.eo_info (optional, if provided):
5622
+ * - carrier: Required, must be non-empty
5623
+ * - expiration_date: Required, must be in the future
5624
+ * - coverage_amount: Required, must be non-empty
5625
+ * - effective_date: Required
5626
+ * - per_occurrence: Required, must be non-empty
5627
+ * - agency.business_hours (optional, if provided):
5628
+ * - timezone: Required, must be non-empty
5629
+ * - business_hours: Required, at least one entry
5630
+ * - week_days: Required, 1-7 days
5631
+ * - opening_time: Required
5632
+ * - closing_time: Required
5633
+ * - agency.producers: Optional list of additional producers (see NewProducer validation)
5634
+ * - agency.points_of_contact (optional, for each contact):
5635
+ * - email: Required, must be a valid email format
5636
+ * - role: Required
5637
+ * - agency.root_organization_id: Optional, if provided must be 1-36 characters
5638
+ * - agency.locations: Optional, maximum 100 locations
5639
+ *
5640
+ * Business logic validation:
5641
+ * - agency.email: Must be unique within the tenant
5642
+ * - agency.npn: If provided, must exist in NIPR (validated via free NIPR lookup)
5643
+ * - principal.email: Must be unique within the tenant
5644
+ * - principal.npn: Must exist in NIPR (validated via free NIPR lookup)
5645
+ * - All producer emails must be unique within the tenant
5646
+ *
5647
+ * Returns:
5648
+ * IDs of the created agency, principal, optional producers, and locations (if provided).
5649
+ *
5650
+ * Common Error Codes:
5651
+ * - INVALID_ARGUMENT: Missing required fields, entity type rule violations, or
5652
+ * NPN not found in NIPR
5653
+ * - ALREADY_EXISTS: Email or NPN already registered in your tenant
5654
+ *
4796
5655
  *
4797
5656
  * @generated from rpc producerflow.producer.v1.ProducerService.NewAgency
4798
5657
  */
@@ -4802,8 +5661,41 @@ export declare const ProducerService: GenService<{
4802
5661
  output: typeof NewAgencyResponseSchema;
4803
5662
  };
4804
5663
  /**
4805
- * ListAgencies returns a list of agencies associated with the tenant.
4806
- * Supports optional filtering by organization ID and search queries.
5664
+ * ListAgencies retrieves a paginated list of agencies associated with the tenant.
5665
+ *
5666
+ * This endpoint provides comprehensive agency listing with powerful filtering
5667
+ * capabilities to efficiently manage and search through large numbers of
5668
+ * agencies. Each agency in the response includes summary information for
5669
+ * quick overview without the full NIPR data.
5670
+ *
5671
+ * Filtering Capabilities:
5672
+ * - Organization: Filter agencies belonging to a specific organization
5673
+ * - Search: Free-text search across agency name, NPN, and email
5674
+ * - Agency Type: Filter by internal (tenant) vs external agencies
5675
+ * - Entity Type: Filter by sole proprietor vs standard agency
5676
+ * - NIPR Sync Status: Filter by synchronization state (active, failing, pending, disabled)
5677
+ *
5678
+ * The response uses cursor-based pagination for efficient data retrieval:
5679
+ * - Default page size is 50 if not specified
5680
+ * - Maximum page size is 200
5681
+ * - Results are ordered by creation date, most recent first
5682
+ * - Use the next_page_token to retrieve subsequent pages
5683
+ *
5684
+ * Validation Rules:
5685
+ * All fields are optional filters:
5686
+ * - organization_id: If provided, must be a valid UUID format
5687
+ * - search_query: Optional free-text search string (case-insensitive, partial matching)
5688
+ * - pagination.page_size: Must be <= 200. Default is 50 if not specified.
5689
+ * - pagination.page_token: Opaque token from previous response for pagination
5690
+ * - agency_type: If provided, must be AGENCY_TYPE_INTERNAL (1) or AGENCY_TYPE_EXTERNAL (2)
5691
+ * - entity_type: If provided, must be ENTITY_TYPE_SOLE_PROPRIETOR (1) or ENTITY_TYPE_AGENCY (2)
5692
+ * - nipr_sync_statuses: Array of sync states to filter by (ACTIVE, FAILING, PENDING, DISABLED)
5693
+ *
5694
+ * Returns:
5695
+ * A paginated list of AgencySummary objects containing essential agency
5696
+ * information without full NIPR data. Use GetAgencyAndProducers for complete
5697
+ * agency details including NIPR data.
5698
+ *
4807
5699
  *
4808
5700
  * @generated from rpc producerflow.producer.v1.ProducerService.ListAgencies
4809
5701
  */
@@ -4813,9 +5705,28 @@ export declare const ProducerService: GenService<{
4813
5705
  output: typeof ListAgenciesResponseSchema;
4814
5706
  };
4815
5707
  /**
4816
- * ListOrganizations returns a list of organizations associated with the tenant.
4817
- * Organizations represent logical groupings or hierarchical structures within a tenant
4818
- * that can be used to organize agencies and producers.
5708
+ * ListOrganizations retrieves all organizations accessible to your tenant.
5709
+ *
5710
+ * Organizations represent logical groupings or hierarchical structures for
5711
+ * managing agencies. They enable better organization of agencies into business
5712
+ * units, networks, or aggregator relationships. Each
5713
+ * organization can contain multiple agencies, allowing for hierarchical
5714
+ * management and reporting across your insurance distribution network.
5715
+ *
5716
+ * Not all tenants use organizations - this list may be empty if your tenant
5717
+ * doesn't have organizational hierarchies enabled.
5718
+ *
5719
+ * Validation Rules:
5720
+ * Proto validation (format checks):
5721
+ * All fields are optional:
5722
+ * - pagination.page_size: Must be <= 200. Default is 50 if not specified.
5723
+ * - pagination.page_token: Opaque token from previous response for pagination
5724
+ *
5725
+ * Returns:
5726
+ * A list of all organizations accessible to your tenant, including their IDs,
5727
+ * names and external identifiers. Organizations are
5728
+ * returned in alphabetical order by name for consistent presentation.
5729
+ *
4819
5730
  *
4820
5731
  * @generated from rpc producerflow.producer.v1.ProducerService.ListOrganizations
4821
5732
  */
@@ -4825,8 +5736,25 @@ export declare const ProducerService: GenService<{
4825
5736
  output: typeof ListOrganizationsResponseSchema;
4826
5737
  };
4827
5738
  /**
4828
- * GetOrganization retrieves details of a specific organization by ID.
4829
- * Returns the organization's information including name and external ID.
5739
+ * GetOrganization retrieves comprehensive details about a specific organization.
5740
+ *
5741
+ * This endpoint returns complete organization information including all
5742
+ * agencies assigned to it. For each agency, it provides summary data including
5743
+ * appointment overview statistics and NIPR synchronization status. This allows
5744
+ * you to understand the full scope of an organization's agency network in a
5745
+ * single API call.
5746
+ *
5747
+ * Validation Rules:
5748
+ * Proto validation (format checks):
5749
+ * - organization_id: Required, must be a valid UUID format
5750
+ *
5751
+ * Returns:
5752
+ * Complete organization details including all assigned agencies with their
5753
+ * appointment overviews and sync statuses.
5754
+ *
5755
+ * Common Error Codes:
5756
+ * - NOT_FOUND: Organization doesn't exist or doesn't belong to tenant
5757
+ *
4830
5758
  *
4831
5759
  * @generated from rpc producerflow.producer.v1.ProducerService.GetOrganization
4832
5760
  */
@@ -4836,9 +5764,88 @@ export declare const ProducerService: GenService<{
4836
5764
  output: typeof GetOrganizationResponseSchema;
4837
5765
  };
4838
5766
  /**
4839
- * NewProducer creates a new producer and associates them with an existing agency.
4840
- * It validates the producer's information and checks that the email is unique.
4841
- * Returns the ID of the created producer.
5767
+ * CreateOrganization creates a new organization for the authenticated tenant.
5768
+ *
5769
+ * Organizations are top-level groupings used to organize agencies within your
5770
+ * tenant. They can represent business units, regions, or any logical grouping
5771
+ * that makes sense for your operations.
5772
+ *
5773
+ * Validation Rules:
5774
+ * Proto validation (format checks):
5775
+ * - name: Required, must be non-empty
5776
+ * - external_id: Optional, your system's identifier for the organization
5777
+ * - email: Optional, contact email for the organization
5778
+ *
5779
+ * Business logic validation:
5780
+ * - name: Must be unique within the tenant (case-insensitive)
5781
+ *
5782
+ * Returns:
5783
+ * The UUID of the newly created organization, which can be used to assign
5784
+ * agencies to this organization.
5785
+ *
5786
+ * Common Error Codes:
5787
+ * - ALREADY_EXISTS: Organization with the same name already exists in tenant
5788
+ *
5789
+ *
5790
+ * @generated from rpc producerflow.producer.v1.ProducerService.CreateOrganization
5791
+ */
5792
+ createOrganization: {
5793
+ methodKind: "unary";
5794
+ input: typeof CreateOrganizationRequestSchema;
5795
+ output: typeof CreateOrganizationResponseSchema;
5796
+ };
5797
+ /**
5798
+ * NewProducer adds a single producer to an existing agency.
5799
+ *
5800
+ * Use this endpoint to programmatically add producers to agencies. This is
5801
+ * the programmatic alternative to CreateProducerOnboardingURL.
5802
+ *
5803
+ * NIPR Validation and Sync:
5804
+ * The system validates the provided NPN exists in NIPR using a free API
5805
+ * lookup. If sync_with_nipr is enabled, the system performs a paid NIPR
5806
+ * EntityInfo lookup to fetch complete license, appointment, and regulatory
5807
+ * data.
5808
+ *
5809
+ * Validation Performed:
5810
+ * - Email is unique within tenant
5811
+ * - Agency exists and belongs to tenant
5812
+ * - NPN exists in NIPR
5813
+ * - Location IDs exist and belong to the agency (if provided)
5814
+ *
5815
+ * Validation Rules:
5816
+ * Proto validation (format checks):
5817
+ * - agency_id: Required, must be a valid UUID format
5818
+ * - producer: Required, contains producer information
5819
+ * - first_name: Required, must be non-empty
5820
+ * - last_name: Required, must be non-empty
5821
+ * - email: Required, must be a valid email format
5822
+ * - npn: Required, used for NIPR validation
5823
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
5824
+ * - mailing_address (optional, if provided):
5825
+ * - street: Required, must be non-empty
5826
+ * - city: Required, must be non-empty
5827
+ * - state: Required, must be exactly 2 characters (state code)
5828
+ * - zip: Required, must be 1-10 characters
5829
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
5830
+ * - location_ids: Optional, maximum 100 items, each must be a valid UUID
5831
+ * - sync_with_nipr: Optional, overrides tenant default NIPR sync setting
5832
+ *
5833
+ * Business logic validation:
5834
+ * - agency_id: Agency must exist and belong to the authenticated tenant
5835
+ * - email: Must be unique within the tenant (not already used by another producer or contact)
5836
+ * - npn: Must exist in NIPR and the provided last name must match the NIPR records
5837
+ * - npn: Must be unique within the tenant (not already assigned to another producer)
5838
+ * - location_ids: All locations must exist and belong to the specified agency
5839
+ *
5840
+ * Returns:
5841
+ * The UUID of the created producer.
5842
+ *
5843
+ * Common Error Codes:
5844
+ * - NOT_FOUND: Agency doesn't exist or producer NPN not found in NIPR
5845
+ * - ALREADY_EXISTS: Producer with email or NPN already exists in tenant
5846
+ * - INVALID_ARGUMENT: Producer NPN is required (when NPN validation is enabled)
5847
+ * - FAILED_PRECONDITION: Producer name does not match NIPR records for the provided NPN
5848
+ *
4842
5849
  *
4843
5850
  * @generated from rpc producerflow.producer.v1.ProducerService.NewProducer
4844
5851
  */
@@ -4848,9 +5855,68 @@ export declare const ProducerService: GenService<{
4848
5855
  output: typeof NewProducerResponseSchema;
4849
5856
  };
4850
5857
  /**
4851
- * NewProducers creates multiple producers and associates them with the specified agency.
4852
- * It performs the same validations as NewProducer for each entry.
4853
- * Returns the IDs of all created producers.
5858
+ * NewProducers creates multiple producers in bulk and associates them with a single agency.
5859
+ *
5860
+ * This endpoint provides an efficient way to onboard multiple producers to the same
5861
+ * agency in a single API call.
5862
+ *
5863
+ * Bulk Operation Behavior:
5864
+ * Producers are created sequentially. If a producer fails validation, the request
5865
+ * returns an error, but any producers created before the failure will remain in
5866
+ * the system. Each producer in the request undergoes the same validation as
5867
+ * individual NewProducer calls.
5868
+ *
5869
+ * NIPR Validation and Sync:
5870
+ * For each producer:
5871
+ * - The system performs a free NIPR API lookup to validate the NPN exists
5872
+ * - If sync_with_nipr is true (or tenant default), performs paid NIPR EntityInfo lookups
5873
+ * - All NIPR validations must succeed for the bulk operation to proceed
5874
+ *
5875
+ * Validation Performed (for each producer):
5876
+ * - Required fields are present and valid (name, email, NPN)
5877
+ * - Email addresses are unique within the tenant
5878
+ * - Agency exists and belongs to the authenticated tenant
5879
+ * - NPNs exist in NIPR
5880
+ * - Location IDs exist and belong to the agency (if provided)
5881
+ * - Phone numbers match valid patterns (if provided)
5882
+ *
5883
+ * Validation Rules:
5884
+ * Proto validation (format checks):
5885
+ * - agency_id: Required, must be a valid UUID format
5886
+ * - producers: Required, must contain at least 1 producer. Each producer:
5887
+ * - first_name: Required, must be non-empty
5888
+ * - last_name: Required, must be non-empty
5889
+ * - email: Required, must be a valid email format
5890
+ * - npn: Required, used for NIPR validation
5891
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
5892
+ * - mailing_address (optional, if provided):
5893
+ * - street: Required, must be non-empty
5894
+ * - city: Required, must be non-empty
5895
+ * - state: Required, must be exactly 2 characters (state code)
5896
+ * - zip: Required, must be 1-10 characters
5897
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
5898
+ * - location_ids: Optional, maximum 100 items per producer, each must be a valid UUID
5899
+ * - sync_with_nipr: Optional, overrides tenant default NIPR sync setting for all producers
5900
+ *
5901
+ * Business logic validation:
5902
+ * - agency_id: Agency must exist and belong to the authenticated tenant
5903
+ * - All producer emails must be unique within the tenant
5904
+ * - All producer NPNs must exist in NIPR, match the provided last name, and be unique within the tenant
5905
+ * - All location_ids must exist and belong to the specified agency
5906
+ * - This is an all-or-nothing operation: if any producer fails validation, no producers
5907
+ * are created
5908
+ *
5909
+ * Returns:
5910
+ * List of UUIDs for all created producers in the same order as the request. This
5911
+ * ordering guarantee allows you to map request entries to their created IDs.
5912
+ *
5913
+ * Common Error Codes:
5914
+ * - NOT_FOUND: Agency doesn't exist or producer NPN not found in NIPR
5915
+ * - ALREADY_EXISTS: Producer with email or NPN already exists in tenant
5916
+ * - INVALID_ARGUMENT: Producer NPN is required (when NPN validation is enabled)
5917
+ * - FAILED_PRECONDITION: Producer name does not match NIPR records for the provided NPN
5918
+ * - PERMISSION_DENIED: Agency doesn't belong to the authenticated tenant
5919
+ *
4854
5920
  *
4855
5921
  * @generated from rpc producerflow.producer.v1.ProducerService.NewProducers
4856
5922
  */
@@ -4860,8 +5926,29 @@ export declare const ProducerService: GenService<{
4860
5926
  output: typeof NewProducersResponseSchema;
4861
5927
  };
4862
5928
  /**
4863
- * GetAgencyAndProducers retrieves details for an agency and all associated producers.
4864
- * Returns the agency information and a list of producers.
5929
+ * GetAgencyAndProducers retrieves complete information for an agency and all
5930
+ * its producers.
5931
+ *
5932
+ * This endpoint returns comprehensive agency details including:
5933
+ * - Agency contact information and business details
5934
+ * - Principal producer information
5935
+ * - Bank account for commission payments
5936
+ * - Errors & Omissions insurance details
5937
+ * - Business hours and contact points
5938
+ * - NIPR synchronized data (licenses, appointments, regulatory actions, addresses)
5939
+ * - All associated producers with their NIPR data
5940
+ * - Agency locations
5941
+ *
5942
+ * Validation Rules:
5943
+ * Proto validation (format checks):
5944
+ * - agency_id: Required, must be a valid UUID format
5945
+ *
5946
+ * Returns:
5947
+ * Agency object with complete NIPR data and list of all associated producers.
5948
+ *
5949
+ * Common Error Codes:
5950
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
5951
+ *
4865
5952
  *
4866
5953
  * @generated from rpc producerflow.producer.v1.ProducerService.GetAgencyAndProducers
4867
5954
  */
@@ -4872,8 +5959,38 @@ export declare const ProducerService: GenService<{
4872
5959
  };
4873
5960
  /**
4874
5961
  * GetProducer retrieves detailed information about a specific producer.
4875
- * The producer can be found by ID, NPN, or email.
4876
- * Returns the producer's information, including NIPR data and agency association.
5962
+ *
5963
+ * Supports three lookup methods:
5964
+ * - By producer ID (UUID)
5965
+ * - By NPN (National Producer Number)
5966
+ * - By email address
5967
+ *
5968
+ * The response includes:
5969
+ * - Producer contact information (name, email, phone, address)
5970
+ * - Associated agency information
5971
+ * - NIPR synchronized data:
5972
+ * - State licenses with expiration dates and Lines of Authority (LOAs)
5973
+ * - Biographic information (name, DOB, state of domicile)
5974
+ * - Regulatory actions by state
5975
+ * - Carrier appointments with status and renewal dates
5976
+ * - Location assignments
5977
+ *
5978
+ * Validation Rules:
5979
+ * Proto validation (format checks):
5980
+ * Exactly one lookup method must be provided (oneof required):
5981
+ * - producer_id_lookup.producer_id: Must be a valid UUID format
5982
+ * - npn_lookup.producer_npn: Must be non-empty string
5983
+ * - email_lookup.email: Must be a valid email format
5984
+ *
5985
+ * Returns:
5986
+ * Complete producer information including all NIPR data.
5987
+ *
5988
+ * Common Error Codes:
5989
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant, or
5990
+ * associated agency not found
5991
+ * - UNIMPLEMENTED: Lookup method not supported (only producer_id, npn, and email
5992
+ * lookups are implemented)
5993
+ *
4877
5994
  *
4878
5995
  * @generated from rpc producerflow.producer.v1.ProducerService.GetProducer
4879
5996
  */
@@ -4883,7 +6000,28 @@ export declare const ProducerService: GenService<{
4883
6000
  output: typeof GetProducerResponseSchema;
4884
6001
  };
4885
6002
  /**
4886
- * GetAgencyFiles returns URLs for accessing files associated with an agency, such as contracts.
6003
+ * GetAgencyFiles retrieves signed URLs for accessing agency documents.
6004
+ *
6005
+ * Returns pre-signed URLs for the following document types:
6006
+ * - Errors & Omissions (E&O) insurance certificate
6007
+ * - Voided check for ACH commission payments
6008
+ * - W9 tax form
6009
+ * - License documents
6010
+ * - Broker bond documents
6011
+ *
6012
+ * The URLs are time-limited and grant temporary read access to the documents.
6013
+ * Empty strings are returned for documents that haven't been uploaded.
6014
+ *
6015
+ * Validation Rules:
6016
+ * Proto validation (format checks):
6017
+ * - agency_id: Required, must be a valid UUID format
6018
+ *
6019
+ * Returns:
6020
+ * A set of pre-signed URLs for accessing agency documents.
6021
+ *
6022
+ * Common Error Codes:
6023
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6024
+ *
4887
6025
  *
4888
6026
  * @generated from rpc producerflow.producer.v1.ProducerService.GetAgencyFiles
4889
6027
  */
@@ -4893,11 +6031,49 @@ export declare const ProducerService: GenService<{
4893
6031
  output: typeof GetAgencyFilesResponseSchema;
4894
6032
  };
4895
6033
  /**
4896
- * UpdateProducer updates information for an existing producer.
4897
- * Supports updating contact details, background check responses,
4898
- * employment history, and non-uniform licensing questions.
4899
- * Information from NIPR and other third-party sources cannot be updated.
4900
- * Validates email uniqueness if the email is changed.
6034
+ * UpdateProducer updates editable fields for an existing producer.
6035
+ *
6036
+ * Only information collected during onboarding can be updated via this
6037
+ * endpoint. NIPR-sourced data (licenses, appointments, regulatory actions) is
6038
+ * read-only and can only be updated by triggering a NIPR sync via
6039
+ * SyncProducerWithNIPR.
6040
+ *
6041
+ * Updatable Fields:
6042
+ * - Contact information (first_name, last_name, middle_name, email, phone)
6043
+ * - Mailing address (street, city, state, zip)
6044
+ * - External metadata (for tenant-specific data)
6045
+ *
6046
+ * Note: NPN cannot be updated after creation. The NPN field is deprecated
6047
+ * in UpdateProducerRequest.Producer and will be ignored.
6048
+ *
6049
+ * Validation:
6050
+ * - Email must be unique within tenant if changed
6051
+ * - All field format validations apply (e.g., valid email format, phone pattern)
6052
+ *
6053
+ * Validation Rules:
6054
+ * Proto validation (format checks):
6055
+ * - producer_id: Required, must be a valid UUID format
6056
+ * - producer: Required, contains fields to update (all fields optional):
6057
+ * - first_name: If provided, must be non-empty
6058
+ * - last_name: If provided, must be non-empty
6059
+ * - middle_name: If provided, must be non-empty
6060
+ * - email: If provided, must be a valid email format
6061
+ * - npn: Deprecated and ignored - NPN cannot be updated after creation
6062
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6063
+ * - street: If provided, must be non-empty
6064
+ * - city: If provided, must be non-empty
6065
+ * - state: If provided, must be at most 2 characters
6066
+ * - zip: If provided, must be at least 5 characters
6067
+ * - external_metadata: Map of key-value pairs for tenant-specific data
6068
+ *
6069
+ *
6070
+ * Returns:
6071
+ * Empty response on success.
6072
+ *
6073
+ * Common Error Codes:
6074
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6075
+ * - INVALID_ARGUMENT: Producer field is missing in request
6076
+ *
4901
6077
  *
4902
6078
  * @generated from rpc producerflow.producer.v1.ProducerService.UpdateProducer
4903
6079
  */
@@ -4907,12 +6083,59 @@ export declare const ProducerService: GenService<{
4907
6083
  output: typeof UpdateProducerResponseSchema;
4908
6084
  };
4909
6085
  /**
4910
- * UpdateAgency updates information for an existing agency.
4911
- * Supports updating contact details (email, phone, fax), website, physical address,
4912
- * requested appointments, and notes.
4913
- * Information from NIPR and other third-party sources cannot be updated.
6086
+ * UpdateAgency updates editable fields for an existing agency.
6087
+ *
6088
+ * Only information collected during onboarding can be updated via this
6089
+ * endpoint. NIPR-sourced data (licenses, appointments, regulatory actions) is
6090
+ * read-only and can only be updated by triggering a NIPR sync via
6091
+ * SyncAgencyWithNIPR.
6092
+ *
6093
+ * Updatable Fields:
6094
+ * - Contact details (email, phone, fax)
6095
+ * - Website URL
6096
+ * - Physical address components
6097
+ * - Requested appointments (state codes)
6098
+ * - Notes
6099
+ * - External metadata (for tenant-specific data)
6100
+ *
4914
6101
  * All fields are optional - only provide the fields you want to update.
4915
- * Validates email uniqueness if the email is changed.
6102
+ * Unchanged fields retain their current values.
6103
+ *
6104
+ * Validation:
6105
+ * - Email must be unique within tenant if changed
6106
+ * - All field format validations apply
6107
+ *
6108
+ * Validation Rules:
6109
+ * Proto validation (format checks):
6110
+ * - agency_id: Required, must be a valid UUID format
6111
+ * - agency: Required, contains fields to update (all fields optional):
6112
+ * - email: If provided, must be a valid email format
6113
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6114
+ * - fax: If provided, must match E.164 pattern
6115
+ * - website: If provided, must be a valid URI format
6116
+ * - requested_appointments: Array of unique 2-letter state codes (e.g., ["CA", "NY"])
6117
+ * - notes: If provided, maximum 500 characters
6118
+ * - physical_address (optional, if provided):
6119
+ * - street: If provided, must be non-empty
6120
+ * - city: If provided, must be non-empty
6121
+ * - state: If provided, must be exactly 2 characters
6122
+ * - zip: If provided, must be 1-10 characters
6123
+ * - external_metadata: Map of key-value pairs for tenant-specific data
6124
+ *
6125
+ * Business logic validation:
6126
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6127
+ * - email: If changed, must be unique within the tenant (case-insensitive comparison)
6128
+ * - phone: If provided, must be a valid phone number format
6129
+ *
6130
+ * Returns:
6131
+ * Empty response on success.
6132
+ *
6133
+ * Common Error Codes:
6134
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6135
+ * - ALREADY_EXISTS: Email already exists within tenant
6136
+ * - INVALID_ARGUMENT: Invalid phone number format or all address fields required
6137
+ * when creating new address
6138
+ *
4916
6139
  *
4917
6140
  * @generated from rpc producerflow.producer.v1.ProducerService.UpdateAgency
4918
6141
  */
@@ -4923,8 +6146,48 @@ export declare const ProducerService: GenService<{
4923
6146
  };
4924
6147
  /**
4925
6148
  * NewContact creates a new contact associated with an agency.
4926
- * Contacts represent non-producer individuals linked to the agency.
4927
- * Returns the ID of the created contact.
6149
+ *
6150
+ * Use this endpoint to programmatically add non-producer individuals to
6151
+ * agencies. Contacts represent staff members, administrators, or other
6152
+ * personnel who are not licensed insurance producers but need to be
6153
+ * associated with the agency for communication or administrative purposes.
6154
+ *
6155
+ * Validation Performed:
6156
+ * - Agency exists and belongs to the authenticated tenant
6157
+ * - Email is unique within the tenant (across both producers and contacts)
6158
+ * - Required fields are present and valid (first name, last name, email, role)
6159
+ * - Phone number matches valid pattern (if provided)
6160
+ *
6161
+ * Validation Rules:
6162
+ * Proto validation (format checks):
6163
+ * - agency_id: Required, must be a valid UUID format
6164
+ * - contact: Required, contains contact information:
6165
+ * - first_name: Required, must be non-empty
6166
+ * - last_name: Required, must be non-empty
6167
+ * - email: Required, must be a valid email format
6168
+ * - role: Required, must be non-empty
6169
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
6170
+ * - middle_name: Optional
6171
+ * - address (optional, if provided):
6172
+ * - street: Required, must be non-empty
6173
+ * - city: Required, must be non-empty
6174
+ * - state: Required, must be exactly 2 characters (state code)
6175
+ * - zip: Required, must be 1-10 characters
6176
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
6177
+ * - npn: Optional
6178
+ *
6179
+ * Business logic validation:
6180
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6181
+ * - email: Must be unique within the tenant (not already used by another producer or contact)
6182
+ *
6183
+ * Returns:
6184
+ * The UUID of the created contact.
6185
+ *
6186
+ * Common Error Codes:
6187
+ * - INVALID_ARGUMENT: Missing required fields or invalid field format
6188
+ * - ALREADY_EXISTS: Email already registered in your tenant
6189
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6190
+ *
4928
6191
  *
4929
6192
  * @generated from rpc producerflow.producer.v1.ProducerService.NewContact
4930
6193
  */
@@ -4934,9 +6197,59 @@ export declare const ProducerService: GenService<{
4934
6197
  output: typeof NewContactResponseSchema;
4935
6198
  };
4936
6199
  /**
4937
- * NewContacts creates multiple contacts in a single request.
4938
- * Each contact is associated with the specified agency.
4939
- * Returns the IDs of all created contacts.
6200
+ * NewContacts creates multiple contacts in bulk and associates them with a
6201
+ * single agency.
6202
+ *
6203
+ * This endpoint provides an efficient way to add multiple non-producer
6204
+ * contacts to the same agency in a single API call. Contacts represent staff
6205
+ * members, administrators, or other personnel who are not licensed insurance
6206
+ * producers.
6207
+ *
6208
+ * Partial Success Behavior:
6209
+ * Unlike bulk producer operations, this endpoint uses partial success
6210
+ * semantics. Contacts that pass validation are created even if other contacts
6211
+ * in the request fail. The response contains only the IDs of successfully
6212
+ * created contacts.
6213
+ *
6214
+ * Validation Performed (for each contact):
6215
+ * - Agency exists and belongs to the authenticated tenant
6216
+ * - Email is unique within the tenant (across both producers and contacts)
6217
+ * - Required fields are present and valid (first name, last name, email, role)
6218
+ * - Phone number matches valid pattern (if provided)
6219
+ *
6220
+ * Validation Rules:
6221
+ * Proto validation (format checks):
6222
+ * - agency_id: Required, must be a valid UUID format
6223
+ * - contacts: Required, must contain at least 1 contact. Each contact:
6224
+ * - first_name: Required, must be non-empty
6225
+ * - last_name: Required, must be non-empty
6226
+ * - email: Required, must be a valid email format
6227
+ * - role: Required, must be non-empty
6228
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
6229
+ * - middle_name: Optional
6230
+ * - address (optional, if provided):
6231
+ * - street: Required, must be non-empty
6232
+ * - city: Required, must be non-empty
6233
+ * - state: Required, must be exactly 2 characters (state code)
6234
+ * - zip: Required, must be 1-10 characters
6235
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
6236
+ * - npn: Optional
6237
+ *
6238
+ * Business logic validation:
6239
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6240
+ * - Each contact email: Must be unique within the tenant. Contacts with duplicate
6241
+ * emails are skipped (partial success - other valid contacts are still created)
6242
+ *
6243
+ * Returns:
6244
+ * List of UUIDs for successfully created contacts. If some contacts failed
6245
+ * validation, only the IDs of successfully created contacts are returned.
6246
+ * Failed contacts are logged but not included in the response. The order of
6247
+ * returned IDs corresponds to the order of successful contacts, not the
6248
+ * original request order.
6249
+ *
6250
+ * Common Error Codes:
6251
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6252
+ *
4940
6253
  *
4941
6254
  * @generated from rpc producerflow.producer.v1.ProducerService.NewContacts
4942
6255
  */
@@ -4947,7 +6260,30 @@ export declare const ProducerService: GenService<{
4947
6260
  };
4948
6261
  /**
4949
6262
  * ListAgencyContacts retrieves all contacts associated with an agency.
4950
- * Returns a list of contacts with their full details.
6263
+ *
6264
+ * Use this endpoint to fetch all non-producer contacts linked to a specific
6265
+ * agency. Contacts represent staff members, administrators, or other
6266
+ * personnel who are not licensed insurance producers but are associated with
6267
+ * the agency.
6268
+ *
6269
+ * The response includes complete contact information:
6270
+ * - Personal details (name, email, phone)
6271
+ * - Role within the agency
6272
+ * - Mailing address
6273
+ * - NPN (if applicable)
6274
+ * - Creation timestamp
6275
+ *
6276
+ * Validation Rules:
6277
+ * Proto validation (format checks):
6278
+ * - agency_id: Required, must be a valid UUID format
6279
+ *
6280
+ * Returns:
6281
+ * A list of all contacts associated with the specified agency. Returns an
6282
+ * empty list if the agency has no contacts.
6283
+ *
6284
+ * Common Error Codes:
6285
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6286
+ *
4951
6287
  *
4952
6288
  * @generated from rpc producerflow.producer.v1.ProducerService.ListAgencyContacts
4953
6289
  */
@@ -4957,8 +6293,55 @@ export declare const ProducerService: GenService<{
4957
6293
  output: typeof ListAgencyContactsResponseSchema;
4958
6294
  };
4959
6295
  /**
4960
- * SetExternalID sets an external identifier for a producer or contact.
4961
- * Useful for integrating with external systems that use different ID schemes.
6296
+ * SetExternalID sets an external identifier for a producer, agency, contact,
6297
+ * or organization.
6298
+ *
6299
+ * Use this endpoint to link ProducerFlow entities to corresponding records in
6300
+ * your external systems (CRM, AMS, legacy databases). This enables bi-directional
6301
+ * synchronization and lookups across systems.
6302
+ *
6303
+ * Supported Entity Types:
6304
+ * - Producer: Links a producer to an external system record
6305
+ * - Agency: Links an agency to an external system record
6306
+ * - Contact: Links a contact to an external system record
6307
+ * - Organization: Links an organization to an external system record
6308
+ *
6309
+ * Exactly one entity type must be specified per request.
6310
+ *
6311
+ * Validation Performed:
6312
+ * - Exactly one entity ID is provided (producer_id, agency_id, contact_id, or organization_id)
6313
+ * - The external ID (tenant_id) is non-empty and at most 255 characters
6314
+ * - The external ID is unique within the tenant (not already assigned to another entity)
6315
+ * - The specified entity exists and belongs to the authenticated tenant
6316
+ *
6317
+ * Validation Rules:
6318
+ * Proto validation (format checks):
6319
+ * Exactly one entity ID must be provided (oneof required):
6320
+ * - producer_id: Must be a valid UUID format
6321
+ * - agency_id: Must be a valid UUID format
6322
+ * - contact_id: Must be a valid UUID format
6323
+ * - organization_id: Must be a valid UUID format
6324
+ *
6325
+ * Required field:
6326
+ * - tenant_id: Required, must be 1-255 characters (the external identifier to assign)
6327
+ *
6328
+ * Business logic validation:
6329
+ * - tenant_id: Must be unique within the tenant (not already assigned to any other entity)
6330
+ * - Entity must exist and belong to the authenticated tenant:
6331
+ * - Producer: Verified via tenant-scoped lookup
6332
+ * - Contact: Verified via tenant-scoped lookup
6333
+ * - Agency: Verified via tenant-scoped lookup and tenant ownership check
6334
+ * - Organization: Verified via tenant-scoped lookup and tenant ownership check
6335
+ *
6336
+ * Returns:
6337
+ * Empty response on success.
6338
+ *
6339
+ * Common Error Codes:
6340
+ * - INVALID_ARGUMENT: No entity ID provided or external ID validation failed
6341
+ * - NOT_FOUND: The specified entity doesn't exist or doesn't belong to tenant
6342
+ * - ALREADY_EXISTS: The external ID is already assigned to another entity in the tenant
6343
+ * - PERMISSION_DENIED: The entity doesn't belong to the authenticated tenant
6344
+ *
4962
6345
  *
4963
6346
  * @generated from rpc producerflow.producer.v1.ProducerService.SetExternalID
4964
6347
  */
@@ -4968,9 +6351,36 @@ export declare const ProducerService: GenService<{
4968
6351
  output: typeof SetExternalIDResponseSchema;
4969
6352
  };
4970
6353
  /**
4971
- * ValidateProducerNPN checks whether a producers National Producer Number (NPN) is valid.
4972
- * It performs a lookup against NIPR and applies internal validation rules.
4973
- * Returns a validity flag and any associated error messages.
6354
+ * ValidateProducerNPN checks whether a producer's National Producer Number (NPN)
6355
+ * exists in NIPR.
6356
+ *
6357
+ * Use this endpoint to verify an NPN is valid before creating a producer. This
6358
+ * is a free NIPR API lookup that does not count against your monthly billing
6359
+ * quota.
6360
+ *
6361
+ * Validation Modes:
6362
+ * - NPN only: Validates that the NPN exists in NIPR
6363
+ * - NPN with name: Validates that the NPN exists AND the name matches the NIPR
6364
+ * record (recommended for additional verification)
6365
+ *
6366
+ * NIPR Billing:
6367
+ * This is a FREE operation. It uses the NIPR NPN Lookup service which does not
6368
+ * incur charges, unlike the other NIPR entity lookups used during sync operations.
6369
+ *
6370
+ * Validation Rules:
6371
+ * Proto validation (format checks):
6372
+ * - npn: Required, must be non-empty string
6373
+ * - name: Optional, if provided validates NPN matches this producer name in NIPR
6374
+ *
6375
+ * Business logic validation:
6376
+ * - NPN is validated against NIPR database via free NIPR NPN Lookup API
6377
+ * - If name is provided, both NPN and name must match a producer record in NIPR
6378
+ * - If name is not provided, only NPN existence is verified
6379
+ *
6380
+ * Returns:
6381
+ * A boolean indicating whether the NPN is valid. Returns true if the NPN exists
6382
+ * in NIPR (and name matches, if provided), false otherwise.
6383
+ *
4974
6384
  *
4975
6385
  * @generated from rpc producerflow.producer.v1.ProducerService.ValidateProducerNPN
4976
6386
  */
@@ -4980,9 +6390,29 @@ export declare const ProducerService: GenService<{
4980
6390
  output: typeof ValidateProducerNPNResponseSchema;
4981
6391
  };
4982
6392
  /**
4983
- * ValidateAgencyNPN checks whether an agencys National Producer Number (NPN) is valid.
4984
- * It performs a lookup against NIPR and applies internal validation rules.
4985
- * Returns a validity flag and any associated error messages.
6393
+ * ValidateAgencyNPN checks whether an agency's National Producer Number (NPN)
6394
+ * exists in NIPR.
6395
+ *
6396
+ * Use this endpoint to verify an agency NPN is valid before creating an agency.
6397
+ * This is a free NIPR API lookup that does not count against your monthly
6398
+ * billing quota.
6399
+ *
6400
+ * NIPR Billing:
6401
+ * This is a FREE operation. It uses the NIPR NPN Lookup service which does not
6402
+ * incur charges, unlike the NIPR entity lookups used during sync operations.
6403
+ *
6404
+ * Validation Rules:
6405
+ * Proto validation (format checks):
6406
+ * - npn: Required, must be non-empty string
6407
+ *
6408
+ * Business logic validation:
6409
+ * - NPN is validated against NIPR database via free NIPR NPN Lookup API
6410
+ * - Agency NPN must exist in NIPR's agency records
6411
+ *
6412
+ * Returns:
6413
+ * A boolean indicating whether the agency NPN is valid. Returns true if the NPN
6414
+ * exists in NIPR, false otherwise.
6415
+ *
4986
6416
  *
4987
6417
  * @generated from rpc producerflow.producer.v1.ProducerService.ValidateAgencyNPN
4988
6418
  */
@@ -4992,9 +6422,31 @@ export declare const ProducerService: GenService<{
4992
6422
  output: typeof ValidateAgencyNPNResponseSchema;
4993
6423
  };
4994
6424
  /**
4995
- * LookupNPNByFEIN finds an NPN using a Federal Employer Identification Number.
4996
- * Used to help agencies that know their FEIN but not their NPN.
4997
- * Returns the NPN if found or an error message.
6425
+ * LookupNPNByFEIN finds an agency's NPN using their Federal Employer
6426
+ * Identification Number (FEIN).
6427
+ *
6428
+ * Use this endpoint to help agencies discover their NPN when they only know
6429
+ * their FEIN. This is common during onboarding when agencies may not have
6430
+ * their NPN readily available but know their tax identification number.
6431
+ *
6432
+ * NIPR Billing:
6433
+ * This is a FREE operation. It uses the NIPR NPN Lookup service which does not
6434
+ * incur charges, unlike the EntityInfo lookups used during sync operations.
6435
+ *
6436
+ * Validation Rules:
6437
+ * Proto validation (format checks):
6438
+ * - fein: Required, must be exactly 9 characters
6439
+ *
6440
+ * Business logic validation:
6441
+ * - FEIN is looked up against NIPR database via free NIPR NPN Lookup API
6442
+ * - Agency with the given FEIN must exist in NIPR's records
6443
+ *
6444
+ * Returns:
6445
+ * The agency's NPN if found in NIPR.
6446
+ *
6447
+ * Common Error Codes:
6448
+ * - NOT_FOUND: No agency found in NIPR with the given FEIN
6449
+ *
4998
6450
  *
4999
6451
  * @generated from rpc producerflow.producer.v1.ProducerService.LookupNPNByFEIN
5000
6452
  */
@@ -5004,7 +6456,13 @@ export declare const ProducerService: GenService<{
5004
6456
  output: typeof LookupNPNByFEINResponseSchema;
5005
6457
  };
5006
6458
  /**
5007
- * ResyncProducer triggers a manual resynchronization of a producer's data. This can be used to refresh data after external changes. WARNING: This call counts as an additional NPN lookup for billing purposes. Most billing plans are based on unique NPNs per month, so using this method may result in extra charges.
6459
+ * ResyncProducer triggers a manual resynchronization of a producer's data.
6460
+ * This can be used to refresh data after external change
6461
+ *
6462
+ * Common Error Codes:
6463
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6464
+ * - INVALID_ARGUMENT: Producer ID is empty
6465
+ *
5008
6466
  *
5009
6467
  * @generated from rpc producerflow.producer.v1.ProducerService.ResyncProducer
5010
6468
  */
@@ -5014,7 +6472,12 @@ export declare const ProducerService: GenService<{
5014
6472
  output: typeof ResyncProducerResponseSchema;
5015
6473
  };
5016
6474
  /**
5017
- * ResyncAgency triggers a manual resynchronization of an agency's data. Similar to ResyncProducer, this can be used to refresh data after external changes. WARNING: This call counts as an additional NPN lookup for billing purposes. Most billing plans are based on unique NPNs per month, so using this method may result in extra charges.
6475
+ * ResyncAgency triggers a manual resynchronization of an agency's data. Similar
6476
+ * to ResyncProducer, this can be used to refresh data after external changes.
6477
+ * Common Error Codes:
6478
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6479
+ * - INVALID_ARGUMENT: Agency ID is empty or request is empty
6480
+ *
5018
6481
  *
5019
6482
  * @generated from rpc producerflow.producer.v1.ProducerService.ResyncAgency
5020
6483
  */
@@ -5024,7 +6487,46 @@ export declare const ProducerService: GenService<{
5024
6487
  output: typeof ResyncAgencyResponseSchema;
5025
6488
  };
5026
6489
  /**
5027
- * SyncProducerWithNIPR synchronizes a producer's data with the NIPR system. Fetches the latest producer information and appointments. WARNING: This call counts as an extra NPN lookup against your billing. Most billing plans are based on unique NPNs per month, so using this method may result in additional charges.
6490
+ * SyncProducerWithNIPR synchronizes a producer's data with NIPR.
6491
+ *
6492
+ * Use this endpoint to manually trigger an immediate refresh of producer data
6493
+ * from NIPR. The operation validates the producer NPN exists in NIPR before
6494
+ * syncing.
6495
+ *
6496
+ * What Gets Synchronized:
6497
+ * - State licenses with expiration dates and Lines of Authority
6498
+ * - Carrier appointments with status and renewal dates
6499
+ * - Regulatory actions and disciplinary history
6500
+ * - Biographic information (name, DOB, state of domicile)
6501
+ * - Address by state
6502
+ *
6503
+ * Preconditions:
6504
+ * - Producer must exist and belong to the authenticated tenant
6505
+ * - Producer must have a valid NPN registered in NIPR
6506
+ * - Producer must not already be in active sync state
6507
+ *
6508
+ * Validation Rules:
6509
+ * Proto validation (format checks):
6510
+ * - producer_id: Required, must be a valid UUID format
6511
+ *
6512
+ * Business logic validation:
6513
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6514
+ * - Producer must have an NPN assigned (cannot sync a producer without NPN)
6515
+ * - Producer's NPN must exist in NIPR (validated via NIPR NPN Lookup API)
6516
+ * - Producer must not already be in ACTIVE sync state (prevents redundant syncs)
6517
+ *
6518
+ * Timeout: 30 seconds. If NIPR takes longer, you'll receive a
6519
+ * DEADLINE_EXCEEDED error.
6520
+ *
6521
+ * Returns:
6522
+ * Empty response on success.
6523
+ *
6524
+ * Common Error Codes:
6525
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6526
+ * - INVALID_ARGUMENT: Producer has no NPN or NPN is not registered in NIPR
6527
+ * - FAILED_PRECONDITION: Producer is already synced with NIPR (ACTIVE sync state)
6528
+ * - DEADLINE_EXCEEDED: NIPR sync took longer than 30 seconds
6529
+ *
5028
6530
  *
5029
6531
  * @generated from rpc producerflow.producer.v1.ProducerService.SyncProducerWithNIPR
5030
6532
  */
@@ -5034,7 +6536,53 @@ export declare const ProducerService: GenService<{
5034
6536
  output: typeof SyncProducerWithNIPRResponseSchema;
5035
6537
  };
5036
6538
  /**
5037
- * SyncAgencyWithNIPR synchronizes an agency's data with the NIPR system. Fetches the latest agency information and appointments. WARNING: This call counts as an extra NPN lookup against your billing. Most billing plans are based on unique NPNs per month, so using this method may result in additional charges.
6539
+ * SyncAgencyWithNIPR synchronizes an agency's data with NIPR.
6540
+ *
6541
+ * Use this endpoint to manually trigger an immediate refresh of agency data
6542
+ * from NIPR. The operation validates the agency NPN exists in NIPR before
6543
+ * syncing.
6544
+ *
6545
+ * What Gets Synchronized:
6546
+ * - Agency biographic information (company name, FEIN, contact details)
6547
+ * - State licenses with expiration dates and Lines of Authority
6548
+ * - Carrier appointments with status and renewal dates
6549
+ * - Regulatory actions and disciplinary history
6550
+ * - Address history by state
6551
+ *
6552
+ * Bulk Producer Sync:
6553
+ * When sync_all_producers is set to true, the system will also sync all
6554
+ * producers associated with the agency. This extends the timeout to 10
6555
+ * minutes to accommodate the additional operations. Each producer sync is
6556
+ * a separate billable NIPR lookup.
6557
+ *
6558
+ * Preconditions:
6559
+ * - Agency must exist and belong to the authenticated tenant
6560
+ * - Agency must have a valid NPN registered in NIPR
6561
+ * - Agency must not already be in active sync state
6562
+ *
6563
+ * Validation Rules:
6564
+ * Proto validation (format checks):
6565
+ * - agency_id: Required, must be a valid UUID format
6566
+ * - sync_all_producers: Optional boolean, defaults to false
6567
+ *
6568
+ * Business logic validation:
6569
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6570
+ * - Agency's NPN must exist in NIPR (validated via NIPR NPN Lookup API)
6571
+ * - Agency must not already be in ACTIVE sync state (prevents redundant syncs)
6572
+ *
6573
+ * Timeout:
6574
+ * - 30 seconds when syncing agency only
6575
+ * - 10 minutes when sync_all_producers is true
6576
+ *
6577
+ * Returns:
6578
+ * Empty response on success.
6579
+ *
6580
+ * Common Error Codes:
6581
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6582
+ * - INVALID_ARGUMENT: Agency NPN is not valid (not found in NIPR)
6583
+ * - FAILED_PRECONDITION: Agency is already synced with NIPR (ACTIVE sync state)
6584
+ * - DEADLINE_EXCEEDED: NIPR sync operation timed out (30s for agency only, 10m with sync_all_producers)
6585
+ *
5038
6586
  *
5039
6587
  * @generated from rpc producerflow.producer.v1.ProducerService.SyncAgencyWithNIPR
5040
6588
  */
@@ -5044,8 +6592,35 @@ export declare const ProducerService: GenService<{
5044
6592
  output: typeof SyncAgencyWithNIPRResponseSchema;
5045
6593
  };
5046
6594
  /**
5047
- * StopSyncProducerWithNIPR stops the synchronization process with NIPR for a producer.
5048
- * Use this to prevent further automatic updates from NIPR.
6595
+ * StopSyncProducerWithNIPR disables automatic NIPR synchronization for a producer.
6596
+ *
6597
+ * Use this endpoint to stop receiving automatic updates from NIPR for a
6598
+ * specific producer. Once stopped, the producer's NIPR data will no longer
6599
+ * be refreshed via PDB Alerts or other automatic sync mechanisms.
6600
+ *
6601
+ * This does not delete existing NIPR data - it only prevents future updates.
6602
+ * To re-enable synchronization, use the SyncProducerWithNIPR endpoint.
6603
+ *
6604
+ * Preconditions:
6605
+ * - Producer must exist and belong to the authenticated tenant
6606
+ * - Producer must be in active or failing sync state (not already disabled/pending)
6607
+ *
6608
+ * Validation Rules:
6609
+ * Proto validation (format checks):
6610
+ * - producer_id: Required, must be a valid UUID format
6611
+ *
6612
+ * Business logic validation:
6613
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6614
+ * - Producer must be in ACTIVE or FAILING sync state (cannot stop if already
6615
+ * DISABLED or PENDING)
6616
+ *
6617
+ * Returns:
6618
+ * Empty response on success.
6619
+ *
6620
+ * Common Error Codes:
6621
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6622
+ * - FAILED_PRECONDITION: Producer is already unsynced (DISABLED or PENDING sync state)
6623
+ *
5049
6624
  *
5050
6625
  * @generated from rpc producerflow.producer.v1.ProducerService.StopSyncProducerWithNIPR
5051
6626
  */
@@ -5055,8 +6630,43 @@ export declare const ProducerService: GenService<{
5055
6630
  output: typeof StopSyncProducerWithNIPRResponseSchema;
5056
6631
  };
5057
6632
  /**
5058
- * StopSyncAgencyWithNIPR stops the synchronization process with NIPR for an agency.
5059
- * Use this to prevent further automatic updates from NIPR.
6633
+ * StopSyncAgencyWithNIPR disables automatic NIPR synchronization for an agency.
6634
+ *
6635
+ * Use this endpoint to stop receiving automatic updates from NIPR for a
6636
+ * specific agency. Once stopped, the agency's NIPR data will no longer be
6637
+ * refreshed via PDB Alerts or other automatic sync mechanisms.
6638
+ *
6639
+ * This does not delete existing NIPR data - it only prevents future updates.
6640
+ * To re-enable synchronization, use the SyncAgencyWithNIPR endpoint.
6641
+ *
6642
+ * Bulk Producer Stop:
6643
+ * When stop_all_producers is set to true, the system will also stop sync for
6644
+ * all producers associated with the agency. This is useful when offboarding
6645
+ * an entire agency from NIPR synchronization. When this flag is set, the
6646
+ * precondition check for agency sync state is bypassed.
6647
+ *
6648
+ * Preconditions:
6649
+ * - Agency must exist and belong to the authenticated tenant
6650
+ * - Agency must be in active or failing sync state (unless stop_all_producers is true)
6651
+ *
6652
+ * Validation Rules:
6653
+ * Proto validation (format checks):
6654
+ * - agency_id: Required, must be a valid UUID format
6655
+ * - stop_all_producers: Optional boolean, defaults to false
6656
+ *
6657
+ * Business logic validation:
6658
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6659
+ * - Unless stop_all_producers is true, agency must be in ACTIVE or FAILING sync
6660
+ * state (cannot stop if already DISABLED or PENDING)
6661
+ *
6662
+ * Returns:
6663
+ * Empty response on success.
6664
+ *
6665
+ * Common Error Codes:
6666
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6667
+ * - FAILED_PRECONDITION: Agency is already unsynced (DISABLED or PENDING sync state,
6668
+ * unless stop_all_producers is true)
6669
+ *
5060
6670
  *
5061
6671
  * @generated from rpc producerflow.producer.v1.ProducerService.StopSyncAgencyWithNIPR
5062
6672
  */
@@ -5066,7 +6676,54 @@ export declare const ProducerService: GenService<{
5066
6676
  output: typeof StopSyncAgencyWithNIPRResponseSchema;
5067
6677
  };
5068
6678
  /**
5069
- * CreateProducerUploadURL generates a URL that can be used to upload new producers for an existing agency. The agency is identified by its NPN, and the URL can be shared with the agency to allow them to upload producer information securely. The URL is time-limited and includes necessary security tokens. A default expiration of 7 days will be used. The agency must: Exist and belong to the authenticated tenant. Have a valid NPN. Returns a URL string that can be shared with the agency for producer uploads. Returns errors in the following cases: INVALID_ARGUMENT: if agency NPN is empty or invalid format. NOT_FOUND: if agency NPN doesn't exist. INTERNAL: for other unexpected errors.
6679
+ * CreateProducerUploadURL generates a secure URL for bulk producer uploads to
6680
+ * an existing agency.
6681
+ *
6682
+ * Use this endpoint to create a shareable link that allows agencies to upload
6683
+ * multiple producers at once. The URL includes security tokens and tenant
6684
+ * context to ensure secure, authenticated access.
6685
+ *
6686
+ * Unlike CreateProducerOnboardingURL which creates a self-service form for a
6687
+ * single producer, this endpoint generates a URL for bulk uploading producer
6688
+ * data (typically via CSV or spreadsheet format).
6689
+ *
6690
+ * The agency is identified by its National Producer Number (NPN), which must
6691
+ * already exist in your tenant. Use ListAgencies or GetAgencyAndProducers to
6692
+ * look up agency NPNs if needed.
6693
+ *
6694
+ * Typical Workflow:
6695
+ * 1. Generate producer upload URL using the agency's NPN
6696
+ * 2. Share URL with agency contact via email or portal
6697
+ * 3. Agency uploads producer data through the URL
6698
+ * 4. System processes uploads, validates NPNs with NIPR, and creates producer
6699
+ * records
6700
+ * 5. Producers are associated with the agency and optionally synced with NIPR
6701
+ *
6702
+ * URL Expiration:
6703
+ * The generated URL has a default expiration of 7 days. After expiration, a
6704
+ * new URL must be generated.
6705
+ *
6706
+ * Validation Performed:
6707
+ * - Agency NPN format is valid (numeric string, 2-10 digits)
6708
+ * - Agency with the given NPN exists in your tenant
6709
+ * - Agency belongs to the authenticated tenant
6710
+ *
6711
+ * Validation Rules:
6712
+ * Proto validation (format checks):
6713
+ * - agency_npn: Required, must be 2-10 digits (numeric characters only)
6714
+ *
6715
+ * Business logic validation:
6716
+ * - Agency with the given NPN must exist in the authenticated tenant
6717
+ * - Agency must belong to the authenticated tenant (ownership verification)
6718
+ * - Only one agency should match the NPN (multiple matches indicate data issue)
6719
+ *
6720
+ * Returns:
6721
+ * A time-limited URL string that can be shared with the agency for bulk
6722
+ * producer uploads.
6723
+ *
6724
+ * Common Error Codes:
6725
+ * - NOT_FOUND: No agency found with the given NPN in your tenant
6726
+ *
5070
6727
  *
5071
6728
  * @generated from rpc producerflow.producer.v1.ProducerService.CreateProducerUploadURL
5072
6729
  */
@@ -5076,7 +6733,53 @@ export declare const ProducerService: GenService<{
5076
6733
  output: typeof CreateProducerUploadURLResponseSchema;
5077
6734
  };
5078
6735
  /**
5079
- * AddAgencyLocations adds one or more locations to an existing agency. Each location must have a unique name within the agency and valid address information. You can add up to 100 locations in a single request. This is a bulk operation with all-or-nothing behavior - if any location fails validation, the entire request will fail and no locations will be added. Returns the IDs of successfully added locations. Returns errors in the following cases: UNAUTHENTICATED: if the API key is invalid or missing. INVALID_ARGUMENT: if the request is nil, agency_id is empty, no locations provided, location names are duplicated within the request or already exist for the agency. NOT_FOUND: if the agency doesn't exist or doesn't belong to the authenticated tenant.
6736
+ * AddAgencyLocations adds one or more locations to an existing agency.
6737
+ *
6738
+ * Use this endpoint to programmatically add physical locations (offices,
6739
+ * branches, etc.) to an agency. Locations enable organizing producers by
6740
+ * their work sites and tracking agency presence across different addresses.
6741
+ *
6742
+ * Bulk Operation Behavior:
6743
+ * This is an all-or-nothing operation - if any location fails validation,
6744
+ * the entire request will fail and no locations will be added. You can add
6745
+ * up to 100 locations in a single request.
6746
+ *
6747
+ * Validation Performed:
6748
+ * - Agency exists and belongs to the authenticated tenant
6749
+ * - At least one location is provided
6750
+ * - Location names are unique within the agency (case-insensitive)
6751
+ * - Location names are not duplicated within the request
6752
+ * - Valid address information is provided for each location
6753
+ *
6754
+ * Validation Rules:
6755
+ * Proto validation (format checks):
6756
+ * - agency_id: Required, must be a valid UUID format
6757
+ * - locations: Required, 1-100 locations. Each location:
6758
+ * - name: Required, must be non-empty (unique within agency)
6759
+ * - address: Required
6760
+ * - street: Required, must be non-empty
6761
+ * - city: Required, must be non-empty
6762
+ * - state: Required, must be exactly 2 characters (state code)
6763
+ * - zip: Required, must be 1-10 characters
6764
+ * - phone: Required, must match E.164 pattern (e.g., +15551234567)
6765
+ * - email: Required, must be a valid email format
6766
+ * - is_primary: Optional boolean, marks location as primary
6767
+ *
6768
+ * Business logic validation:
6769
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6770
+ * - Location names must be unique within the agency (case-insensitive)
6771
+ * - Location names must not duplicate any existing location names in the agency
6772
+ * - Location names must not duplicate other location names within the same request
6773
+ *
6774
+ * Returns:
6775
+ * List of UUIDs for all created locations in the same order as the request.
6776
+ * This ordering guarantee allows you to map request entries to their created IDs.
6777
+ *
6778
+ * Common Error Codes:
6779
+ * - INVALID_ARGUMENT: Missing agency_id, no locations provided, duplicate
6780
+ * location names, or location with name already exists in agency
6781
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6782
+ *
5080
6783
  *
5081
6784
  * @generated from rpc producerflow.producer.v1.ProducerService.AddAgencyLocations
5082
6785
  */
@@ -5086,7 +6789,39 @@ export declare const ProducerService: GenService<{
5086
6789
  output: typeof AddAgencyLocationsResponseSchema;
5087
6790
  };
5088
6791
  /**
5089
- * RemoveAgencyLocations removes one or more locations from an agency. Locations that don't exist will be silently ignored. Returns the IDs of successfully removed locations. When a location is removed, all the producers associated with that location will be unassigned from that location. Returns errors in the following cases: UNAUTHENTICATED: if the API key is invalid or missing. INVALID_ARGUMENT: if the request is nil, agency_id is empty, or no location_ids provided. NOT_FOUND: if the agency doesn't exist or doesn't belong to the authenticated tenant.
6792
+ * RemoveAgencyLocations removes one or more locations from an agency.
6793
+ *
6794
+ * Use this endpoint to delete locations that are no longer needed. This is
6795
+ * useful when closing branch offices or consolidating agency locations.
6796
+ *
6797
+ * Producer Unassignment:
6798
+ * When a location is removed, all producers assigned to that location are
6799
+ * automatically unassigned. The producers themselves are not deleted - they
6800
+ * remain associated with the agency but without a location assignment.
6801
+ *
6802
+ * Partial Success Behavior:
6803
+ * Locations that don't exist are silently ignored. The response contains only
6804
+ * the IDs of locations that were actually removed.
6805
+ *
6806
+ * Validation Performed:
6807
+ * - At least one location ID is provided
6808
+ *
6809
+ * Validation Rules:
6810
+ * Proto validation (format checks):
6811
+ * - agency_id: Required, must be a valid UUID format
6812
+ * - location_ids: Required, 1-100 items, each must be a valid UUID format
6813
+ *
6814
+ * Business logic validation:
6815
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6816
+ * - Location IDs that don't exist are silently ignored (partial success)
6817
+ *
6818
+ * Returns:
6819
+ * List of UUIDs for locations that were successfully removed.
6820
+ *
6821
+ * Common Error Codes:
6822
+ * - INVALID_ARGUMENT: Missing agency_id or no location_ids provided
6823
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6824
+ *
5090
6825
  *
5091
6826
  * @generated from rpc producerflow.producer.v1.ProducerService.RemoveAgencyLocations
5092
6827
  */
@@ -5096,7 +6831,30 @@ export declare const ProducerService: GenService<{
5096
6831
  output: typeof RemoveAgencyLocationsResponseSchema;
5097
6832
  };
5098
6833
  /**
5099
- * ListAgencyLocations retrieves all locations associated with an agency. Returns errors in the following cases: UNAUTHENTICATED: if the API key is invalid or missing. INVALID_ARGUMENT: if the agency_id is empty. NOT_FOUND: if the agency doesn't exist.
6834
+ * ListAgencyLocations retrieves all locations associated with an agency.
6835
+ *
6836
+ * Use this endpoint to fetch the complete list of physical locations
6837
+ * belonging to an agency. Each location includes its address, contact
6838
+ * information, and primary status.
6839
+ *
6840
+ * The response includes complete location information:
6841
+ * - Location ID and name
6842
+ * - Physical address (street, city, state, zip)
6843
+ * - Contact information (phone, email)
6844
+ * - Primary location indicator
6845
+ *
6846
+ * Validation Rules:
6847
+ * Proto validation (format checks):
6848
+ * - agency_id: Required, must be a valid UUID format
6849
+ *
6850
+ * Returns:
6851
+ * A list of all locations associated with the specified agency. Returns an
6852
+ * empty list if the agency has no locations.
6853
+ *
6854
+ * Common Error Codes:
6855
+ * - INVALID_ARGUMENT: Invalid request
6856
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6857
+ *
5100
6858
  *
5101
6859
  * @generated from rpc producerflow.producer.v1.ProducerService.ListAgencyLocations
5102
6860
  */
@@ -5106,7 +6864,45 @@ export declare const ProducerService: GenService<{
5106
6864
  output: typeof ListAgencyLocationsResponseSchema;
5107
6865
  };
5108
6866
  /**
5109
- * AssignProducerToLocations assigns one or more locations to a producer. The locations must belong to the same agency as the producer. Error cases: UNAUTHENTICATED: Invalid or missing API key. INVALID_ARGUMENT: Empty producer_id or no location_ids. NOT_FOUND: Producer or locations don't exist. PERMISSION_DENIED: Locations don't belong to the producer's agency.
6867
+ * AssignProducerToLocations assigns one or more locations to a producer.
6868
+ *
6869
+ * Use this endpoint to associate a producer with specific agency locations
6870
+ * (branch offices, work sites, etc.). A producer can be assigned to multiple
6871
+ * locations within their agency.
6872
+ *
6873
+ * Location Ownership:
6874
+ * All specified locations must belong to the same agency as the producer.
6875
+ * Cross-agency location assignments are not permitted.
6876
+ *
6877
+ * Idempotent Behavior:
6878
+ * If a producer is already assigned to a location, the assignment is
6879
+ * preserved without error. The response includes all successfully assigned
6880
+ * location IDs.
6881
+ *
6882
+ * Validation Performed:
6883
+ * - Producer exists and belongs to the authenticated tenant
6884
+ * - All location IDs exist and belong to the producer's agency
6885
+ * - At least one location ID is provided
6886
+ *
6887
+ * Validation Rules:
6888
+ * Proto validation (format checks):
6889
+ * - producer_id: Required, must be a valid UUID format
6890
+ * - location_ids: Required, 1-100 items, each must be a valid UUID format
6891
+ *
6892
+ * Business logic validation:
6893
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6894
+ * - Producer's agency must exist and belong to the authenticated tenant
6895
+ * - All location_ids must exist and belong to the producer's agency
6896
+ *
6897
+ * Returns:
6898
+ * List of location IDs that were successfully assigned to the producer.
6899
+ *
6900
+ * Common Error Codes:
6901
+ * - INVALID_ARGUMENT: Request is missing
6902
+ * - NOT_FOUND: Producer doesn't exist, agency doesn't exist, or specified
6903
+ * locations don't exist
6904
+ * - PERMISSION_DENIED: Agency doesn't belong to the authenticated tenant
6905
+ *
5110
6906
  *
5111
6907
  * @generated from rpc producerflow.producer.v1.ProducerService.AssignProducerToLocations
5112
6908
  */
@@ -5116,7 +6912,39 @@ export declare const ProducerService: GenService<{
5116
6912
  output: typeof AssignProducerToLocationsResponseSchema;
5117
6913
  };
5118
6914
  /**
5119
- * UnassignProducerFromLocations removes one or more location assignments from a producer. The locations must belong to the same agency as the producer. Error cases: UNAUTHENTICATED: Invalid or missing API key. INVALID_ARGUMENT: Empty producer_id or no location_ids. NOT_FOUND: Producer doesn't exist.
6915
+ * UnassignProducerFromLocations removes one or more location assignments from
6916
+ * a producer.
6917
+ *
6918
+ * Use this endpoint to disassociate a producer from specific agency locations.
6919
+ * This is useful when producers change work sites or when consolidating
6920
+ * location assignments.
6921
+ *
6922
+ * Producer Preservation:
6923
+ * This operation only removes the location assignments - the producer remains
6924
+ * active and associated with the agency. To fully remove a producer, use the
6925
+ * appropriate producer deletion endpoint.
6926
+ *
6927
+ * Validation Performed:
6928
+ * - Producer exists and belongs to the authenticated tenant
6929
+ * - All location IDs exist and belong to the producer's agency
6930
+ * - At least one location ID is provided
6931
+ *
6932
+ * Validation Rules:
6933
+ * Proto validation (format checks):
6934
+ * - producer_id: Required, must be a valid UUID format
6935
+ * - location_ids: Required, 1-100 items, each must be a valid UUID format
6936
+ *
6937
+ * Business logic validation:
6938
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6939
+ * - All location_ids must exist and belong to the producer's agency
6940
+ *
6941
+ * Returns:
6942
+ * List of location IDs that were successfully unassigned from the producer.
6943
+ *
6944
+ * Common Error Codes:
6945
+ * - INVALID_ARGUMENT: Request is missing, producer_id is empty, or no location_ids provided
6946
+ * - NOT_FOUND: Producer doesn't exist or specified locations don't exist
6947
+ *
5120
6948
  *
5121
6949
  * @generated from rpc producerflow.producer.v1.ProducerService.UnassignProducerFromLocations
5122
6950
  */
@@ -5126,7 +6954,53 @@ export declare const ProducerService: GenService<{
5126
6954
  output: typeof UnassignProducerFromLocationsResponseSchema;
5127
6955
  };
5128
6956
  /**
5129
- * UpdateAgencyLocation updates an existing agency location. You can update the name, address, contact information, and primary status of a location. All fields are optional - only provide the fields you want to update. Location name must be unique within the agency. Returns the updated location details. Error cases: UNAUTHENTICATED: Invalid or missing API key. INVALID_ARGUMENT: Missing agency_id or location_id. NOT_FOUND: Agency or location doesn't exist. ALREADY_EXISTS: Location name already exists within the agency.
6957
+ * UpdateAgencyLocation updates an existing agency location.
6958
+ *
6959
+ * Use this endpoint to modify location details such as address, contact
6960
+ * information, or primary status. This is useful when locations move,
6961
+ * change phone numbers, or when designating a new primary location.
6962
+ *
6963
+ * Updatable Fields:
6964
+ * - Name (must remain unique within the agency)
6965
+ * - Address (street, city, state, zip)
6966
+ * - Contact information (phone, email)
6967
+ * - Primary location status
6968
+ *
6969
+ * All fields are optional - only provide the fields you want to update.
6970
+ * Unchanged fields retain their current values.
6971
+ *
6972
+ * Name Uniqueness:
6973
+ * If updating the location name, the new name must not already exist for
6974
+ * another location within the same agency (case-insensitive comparison).
6975
+ *
6976
+ * Validation Rules:
6977
+ * Proto validation (format checks):
6978
+ * - agency_id: Required, must be a valid UUID format
6979
+ * - location_id: Required, must be a valid UUID format
6980
+ * - name: If provided, must be non-empty (unique within agency)
6981
+ * - address: If provided (all fields optional within):
6982
+ * - street: If provided, must be non-empty
6983
+ * - city: If provided, must be non-empty
6984
+ * - state: If provided, must be exactly 2 characters (state code)
6985
+ * - zip: If provided, must be 1-10 characters
6986
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6987
+ * - email: If provided, must be a valid email format
6988
+ * - is_primary: Optional boolean
6989
+ *
6990
+ * Business logic validation:
6991
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6992
+ * - location_id: Location must exist and belong to the specified agency
6993
+ * - name: If provided, must be unique within the agency (case-insensitive,
6994
+ * excluding the location being updated)
6995
+ *
6996
+ * Returns:
6997
+ * The complete updated location object with all current field values.
6998
+ *
6999
+ * Common Error Codes:
7000
+ * - INVALID_ARGUMENT: Missing agency_id or location_id, or invalid request
7001
+ * - NOT_FOUND: Agency or location doesn't exist or doesn't belong to tenant
7002
+ * - ALREADY_EXISTS: New location name already exists within the agency
7003
+ *
5130
7004
  *
5131
7005
  * @generated from rpc producerflow.producer.v1.ProducerService.UpdateAgencyLocation
5132
7006
  */