{
  "swagger": "2.0",
  "info": {
    "title": "InsureTrek Bridge API",
    "description": "The Bridge API allows InsureTrek partners to programmatically manage producer onboarding, licensing, and account operations.",
    "version": "1.0",
    "contact": {}
  },
  "paths": {
    "/v1/account": {
      "patch": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "This endpoint allows authenticated clients to update an existing user details. Requires a valid Bearer token.",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Account"
        ],
        "summary": "Update user details",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "User update payload",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.UpdateUserRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.UpdateUserResponse"
            }
          },
          "400": {
            "description": "Bad Request – Missing or invalid parameters",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized – Invalid or missing API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "403": {
            "description": "Forbidden – Access denied to the requested resource",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error – Something went wrong on the server",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/account-credential": {
      "post": {
        "description": "Generates and returns credentials for the specified user.",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Account"
        ],
        "summary": "Create user credentials",
        "parameters": [
          {
            "type": "string",
            "description": "User ID for which the credentials will be created",
            "name": "agencyId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/entity.AgencyCredential"
            }
          },
          "400": {
            "description": "Missing or invalid agencyId",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized or invalid API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer": {
      "post": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Onboards a producer by NPN. Supports three onboard types: 'lookup' (read-only check), 'subscribe' (full subscription), and 'team' (team member onboard with payment and personal details). When onboardType is 'team', the fields paymentResponsibility, email, firstName, lastName, phone, gender, and ssn become available. paymentResponsibility is required for team and must be 'agency' or 'producer'.",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Lookup, subscribe, or team-onboard a producer",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "Producer onboard payload",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.GetEntityInfoHandlerRequestBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.ProducerDetailDTO"
            },
            "examples": {
              "application/json": {
                "id": "1a2b3c4d5e6f7a8b9c0d1e2f",
                "createdAt": "2026-04-10T14:22:00.00Z",
                "updatedAt": "2026-04-10T14:22:00.00Z",
                "isBetaResponse": true,
                "transactionType": "INDIVIDUAL",
                "biographic": {
                  "firstName": "Jane",
                  "middleName": "Marie",
                  "lastName": "Doe",
                  "dateOfBirth": "05/14/1985",
                  "npn": "9876543",
                  "otherNames": []
                },
                "clearanceCertificationInfo": "",
                "nasdExamDetails": "",
                "addresses": [
                  {
                    "state": "MI",
                    "addresses": [
                      {
                        "lastUpdatedDate": "03/15/2025",
                        "addressTypeCode": 2,
                        "addressType": "Business",
                        "addressLine1": "500 Example Ave",
                        "addressLine2": "",
                        "addressLine3": "",
                        "city": "Detroit",
                        "state": "MI",
                        "zip": "48201-1234",
                        "country": "U.S.A."
                      },
                      {
                        "lastUpdatedDate": "03/15/2025",
                        "addressTypeCode": 1,
                        "addressType": "Residence",
                        "addressLine1": "42 Sample Street",
                        "addressLine2": "",
                        "addressLine3": "",
                        "city": "Ann Arbor",
                        "state": "MI",
                        "zip": "48103-5678",
                        "country": "U.S.A."
                      }
                    ]
                  }
                ],
                "contactInfos": [
                  {
                    "state": "MI",
                    "contactInfo": [
                      {
                        "businessPhone": "555-123-4567",
                        "businessPhoneLastUpdatedDate": "03/15/2025",
                        "businessEmail": "jane.doe@example.com",
                        "businessEmailLastUpdatedDate": "03/15/2025"
                      }
                    ]
                  }
                ],
                "regulatoryActions": [
                  {
                    "state": "",
                    "regulatoryAction": {
                      "actionId": "",
                      "originOfAction": "",
                      "reasonForAction": "",
                      "disposition": "",
                      "dateOfAction": "",
                      "effectiveDate": "",
                      "enterDate": "",
                      "fileRef": "",
                      "penaltyFineForfeiture": "",
                      "lengthOfOrder": ""
                    }
                  }
                ],
                "licenseInformation": [
                  {
                    "state": "MI",
                    "licenses": [
                      {
                        "licenseNumber": "11111111",
                        "lastUpdatedDate": "03/15/2025",
                        "licenseOriginalIssueDate": "01/10/2018",
                        "licenseExpiryDate": "01/31/2027",
                        "licenseClass": "Insurance Producer",
                        "licenseClassCode": 3,
                        "residencyStatus": "R",
                        "active": true,
                        "details": [
                          {
                            "loa": "Life",
                            "loaCode": 16,
                            "authorityIssueDate": "01/10/2018",
                            "status": "Active",
                            "statusReason": "",
                            "statusReasonDate": "01/10/2018",
                            "ceCompliance": "",
                            "ceRenewalDate": "",
                            "ceCreditsNeeded": 0
                          },
                          {
                            "loa": "Accident & Health or Sickness",
                            "loaCode": 935,
                            "authorityIssueDate": "01/10/2018",
                            "status": "Active",
                            "statusReason": "",
                            "statusReasonDate": "01/10/2018",
                            "ceCompliance": "",
                            "ceRenewalDate": "",
                            "ceCreditsNeeded": 0
                          }
                        ]
                      }
                    ],
                    "appointments": [
                      {
                        "companyName": "Example Life Insurance Co",
                        "fein": "00-0000001",
                        "coCode": "10001",
                        "loa": "LOCAL / LIFE",
                        "loaCode": "2145",
                        "status": "Appointed",
                        "terminationReason": "",
                        "statusReasonDate": "02/01/2024",
                        "appointRenewalDate": "12/31/2026",
                        "county": "",
                        "branchID": "",
                        "agencyAffiliations": ""
                      },
                      {
                        "companyName": "Sample Health Plan Inc",
                        "fein": "00-0000002",
                        "coCode": "10002",
                        "loa": "LOCAL / ACCIDENT & HEALTH OR SICKNESS",
                        "loaCode": "2151",
                        "status": "Appointed",
                        "terminationReason": "",
                        "statusReasonDate": "02/01/2024",
                        "appointRenewalDate": "12/31/2026",
                        "county": "",
                        "branchID": "",
                        "agencyAffiliations": ""
                      }
                    ]
                  },
                  {
                    "state": "MO",
                    "licenses": [
                      {
                        "licenseNumber": "22222222",
                        "lastUpdatedDate": "03/15/2025",
                        "licenseOriginalIssueDate": "04/20/2019",
                        "licenseExpiryDate": "04/30/2027",
                        "licenseClass": "Insurance Producer",
                        "licenseClassCode": 3,
                        "residencyStatus": "NR",
                        "active": true,
                        "details": [
                          {
                            "loa": "Life",
                            "loaCode": 16,
                            "authorityIssueDate": "04/20/2019",
                            "status": "Active",
                            "statusReason": "",
                            "statusReasonDate": "04/20/2019",
                            "ceCompliance": "",
                            "ceRenewalDate": "",
                            "ceCreditsNeeded": 0
                          }
                        ]
                      }
                    ],
                    "appointments": [
                      {
                        "companyName": "Example Life Insurance Co",
                        "fein": "00-0000001",
                        "coCode": "10001",
                        "loa": "LOCAL / LIFE",
                        "loaCode": "2145",
                        "status": "Appointed",
                        "terminationReason": "",
                        "statusReasonDate": "05/01/2024",
                        "appointRenewalDate": "12/31/2026",
                        "county": "",
                        "branchID": "",
                        "agencyAffiliations": ""
                      }
                    ]
                  },
                  {
                    "state": "OR",
                    "licenses": [
                      {
                        "licenseNumber": "33333333",
                        "lastUpdatedDate": "03/15/2025",
                        "licenseOriginalIssueDate": "07/12/2020",
                        "licenseExpiryDate": "07/31/2027",
                        "licenseClass": "Insurance Producer",
                        "licenseClassCode": 3,
                        "residencyStatus": "NR",
                        "active": true,
                        "details": [
                          {
                            "loa": "Accident & Health or Sickness",
                            "loaCode": 935,
                            "authorityIssueDate": "07/12/2020",
                            "status": "Active",
                            "statusReason": "",
                            "statusReasonDate": "07/12/2020",
                            "ceCompliance": "",
                            "ceRenewalDate": "",
                            "ceCreditsNeeded": 0
                          }
                        ]
                      }
                    ],
                    "appointments": [
                      {
                        "companyName": "Sample Health Plan Inc",
                        "fein": "00-0000002",
                        "coCode": "10002",
                        "loa": "LOCAL / ACCIDENT & HEALTH OR SICKNESS",
                        "loaCode": "2151",
                        "status": "Appointed",
                        "terminationReason": "",
                        "statusReasonDate": "08/01/2024",
                        "appointRenewalDate": "12/31/2026",
                        "county": "",
                        "branchID": "",
                        "agencyAffiliations": ""
                      }
                    ]
                  },
                  {
                    "state": "WA",
                    "licenses": [
                      {
                        "licenseNumber": "44444444",
                        "lastUpdatedDate": "03/15/2025",
                        "licenseOriginalIssueDate": "06/01/2017",
                        "licenseExpiryDate": "06/30/2023",
                        "licenseClass": "Insurance Producer",
                        "licenseClassCode": 3,
                        "residencyStatus": "NR",
                        "active": false,
                        "details": [
                          {
                            "loa": "Life",
                            "loaCode": 16,
                            "authorityIssueDate": "06/01/2017",
                            "status": "Inactive",
                            "statusReason": "Expired",
                            "statusReasonDate": "06/30/2023",
                            "ceCompliance": "",
                            "ceRenewalDate": "",
                            "ceCreditsNeeded": 0
                          }
                        ]
                      }
                    ],
                    "appointments": []
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Bad Request – Missing or invalid parameters",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized – Invalid or missing API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "403": {
            "description": "Forbidden – Agency not authorized for this onboard type",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error – Something went wrong on the server",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/bulk/details/{id}": {
      "get": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Returns bulk report details based on the onboarding status (in-progress or completed). Results are paginated with a default page size of 50.",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Get Bulk Onboarding Details",
        "parameters": [
          {
            "type": "string",
            "description": "Bulk Onboard ID",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "type": "integer",
            "description": "Page number for pagination (defaults to 1)",
            "name": "page",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Sample Response",
            "schema": {
              "$ref": "#/definitions/dto.BulkReportDetailsResponse"
            }
          }
        }
      }
    },
    "/v1/account/producer/bulk/onboard": {
      "post": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Initiates bulk onboarding for a list of NPNs based on the provided onboarding type.\n**Examples:**\n- **Lookup Onboard**\n{\n\"npn\": [1234567, 7654321],\n\"onboardType\": \"lookup\"\n}\n- **Subscribe Onboard**\n{\n\"npn\": [5555555, 6666666],\n\"onboardType\": \"subscribe\"\n}",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Bulk onboard producers",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "Bulk Onboard Request Payload",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.BulkOnboardRequestDto"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully submitted to onboard\"  example({\"message\": \"Successfully submitted to onboard\", \"id\": \"661e68abde6fd2c2a2e037b5\"})",
            "schema": {
              "$ref": "#/definitions/dto.BulkOnboardResponse"
            }
          },
          "400": {
            "description": "Bad Request – Invalid NPNs or onboarding failure",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized – Invalid or missing API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/bulk/status/{id}": {
      "get": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Fetches the current status of a bulk onboarding process using the bulk onboarding ID.\n\n**Examples:**\n- **In Progress**\n{\n\"id\": \"661e68abde6fd2c2a2e037b5\",\n\"successCount\": 0,\n\"failureCount\": 0,\n\"message\": \"Onboarding the producers. please try again\"\n}\n- **Completed**\n{\n\"id\": \"661e68abde6fd2c2a2e037b5\",\n\"npns\": [\"1234567\", \"7654321\"],\n\"totalCount\": 2,\n\"successCount\": 1,\n\"failureCount\": 1,\n\"failedNpns\": [ 1234567 ]\n}",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Get the status of a bulk onboarding process",
        "parameters": [
          {
            "type": "string",
            "description": "Bulk Onboarding ID",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Bulk Onboarding Status",
            "schema": {
              "$ref": "#/definitions/dto.BulkOnboardStatusResponse"
            }
          },
          "400": {
            "description": "Bad Request – Invalid Bulk Onboarding ID",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "404": {
            "description": "Not Found – Bulk Onboarding ID not found",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/license/active": {
      "get": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Returns a list of active licenses associated with the user for the specified state codes",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Get active licenses for given state codes",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "csv",
            "description": "List of state codes (e.g. stateCode=CA&stateCode=TX)",
            "name": "stateCode",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "List of active licenses by state",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/dto.StateActiveLicenseInfo"
              }
            }
          },
          "400": {
            "description": "Bad Request – Missing or invalid parameters",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error – Something went wrong on the server",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/npn-lookup": {
      "post": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Looks up a producer's NPN using their SSN and last name via NIPR",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Lookup NPN by SSN and last name",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "SSN and last name lookup payload",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.NpnLookupRequestBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/controller.NpnLookupSuccessResponse"
            }
          },
          "400": {
            "description": "Bad Request – Missing or invalid parameters",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized – Invalid or missing API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error – Something went wrong on the server",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/subscription-update": {
      "post": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "This endpoint allows clients to get latest updates for the npns they have subscribed for",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Producer"
        ],
        "summary": "Get latest update for an npn",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "Producer lookup payload",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.PDBRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/proto.RetrievedPdbUserInfoDTO"
            }
          },
          "400": {
            "description": "Bad Request – Missing or invalid parameters",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized – Invalid or missing API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error – Something went wrong on the server",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/{npn}/territories": {
      "post": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Assigns a territory to a producer by NPN, merging with existing assignments",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Territory"
        ],
        "summary": "Assign a territory to a producer",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "type": "string",
            "description": "Producer NPN",
            "name": "npn",
            "in": "path",
            "required": true
          },
          {
            "description": "Territory assignment payload",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.AssignTerritoryRequestBody"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.AssignTerritorySuccessResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/producer/{npn}/territories/{territoryId}": {
      "delete": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Removes a territory assignment from a producer by NPN",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Territory"
        ],
        "summary": "Unassign a territory from a producer",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "type": "string",
            "description": "Producer NPN",
            "name": "npn",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Territory ID",
            "name": "territoryId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.UnassignTerritorySuccessResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/reset-credential": {
      "patch": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Allows an authenticated user to reset their password.",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Account"
        ],
        "summary": "Reset user password",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.UpdatedUserCredentialResponseDTO"
            }
          },
          "400": {
            "description": "Missing or invalid agencyId",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Unauthorized or invalid API key",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/account/territories": {
      "get": {
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "description": "Returns a paginated list of territories with states, licenses, LOAs, and assigned producers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Territory"
        ],
        "summary": "Get territories for an agency",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "type": "integer",
            "description": "Page number (default 1)",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "Page size (default 20)",
            "name": "pageSize",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.GetTerritoriesSuccessResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/auth/login": {
      "post": {
        "description": "This endpoint logs in a user by validating client credentials and generating an access token.",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Auth"
        ],
        "summary": "Log in a user using client credentials",
        "parameters": [
          {
            "description": "Client Credentials",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.LoginRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Access Token",
            "schema": {
              "$ref": "#/definitions/dto.LoginResponse"
            }
          },
          "400": {
            "description": "Invalid request payload",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Invalid client credentials",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Token generation failed",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/subscribe": {
      "post": {
        "description": "Adds or updates subscription targets (NPNS) for the given agency",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Subscription"
        ],
        "summary": "Add or update subscription targets",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "Subscription Request",
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.SubscriptionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.SubscriptionResponse"
            }
          },
          "400": {
            "description": "Invalid request payload",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Invalid client credentials",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Token generation failed",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    },
    "/v1/unsubscribe": {
      "delete": {
        "description": "Removes subscription targets (NPNS) for the given agency",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Subscription"
        ],
        "summary": "Remove subscription targets",
        "parameters": [
          {
            "type": "string",
            "description": "Bearer Token",
            "name": "Authorization",
            "in": "header",
            "required": true
          },
          {
            "description": "Subscription Request",
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/dto.SubscriptionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/dto.SubscriptionResponse"
            }
          },
          "400": {
            "description": "Invalid request payload",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "401": {
            "description": "Invalid client credentials",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          },
          "500": {
            "description": "Token generation failed",
            "schema": {
              "$ref": "#/definitions/customerror.CustomError"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "controller.GetEntityInfoHandlerRequestBody": {
      "type": "object",
      "required": [
        "npn",
        "onboardType"
      ],
      "properties": {
        "email": {
          "description": "Required when onboardType is 'team'.",
          "type": "string",
          "example": "john.doe@example.com"
        },
        "firstName": {
          "description": "Required when onboardType is 'team'.",
          "type": "string",
          "example": "John"
        },
        "gender": {
          "description": "Optional. Used when onboardType is 'team'.",
          "type": "string",
          "example": "M"
        },
        "lastName": {
          "description": "Required when onboardType is 'team'.",
          "type": "string",
          "example": "Doe"
        },
        "npn": {
          "type": "string",
          "example": "1234567890"
        },
        "onboardType": {
          "enum": [
            "lookup",
            "subscribe",
            "team"
          ],
          "allOf": [
            {
              "$ref": "#/definitions/enum.OnboardType"
            }
          ],
          "example": "subscribe"
        },
        "paymentResponsibility": {
          "description": "Required when onboardType is 'team'. Must be 'agency' or 'producer'.",
          "type": "string",
          "example": "agency"
        },
        "phone": {
          "description": "Optional. Used when onboardType is 'team'.",
          "type": "string",
          "example": "5551234567"
        },
        "ssn": {
          "description": "Optional. Used when onboardType is 'team'.",
          "type": "string",
          "example": "123456789"
        }
      }
    },
    "controller.NpnLookupRequestBody": {
      "type": "object",
      "required": [
        "lastName",
        "ssn"
      ],
      "properties": {
        "lastName": {
          "type": "string",
          "example": "Doe"
        },
        "ssn": {
          "type": "string",
          "example": "123456789"
        }
      }
    },
    "controller.NpnLookupResponseDTO": {
      "type": "object",
      "properties": {
        "npn": {
          "type": "string",
          "example": "1234567890"
        }
      }
    },
    "controller.NpnLookupSuccessResponse": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/definitions/controller.NpnLookupResponseDTO"
        },
        "message": {
          "type": "string",
          "example": "Success"
        }
      }
    },
    "customerror.CustomError": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer"
        },
        "details": {
          "type": "string"
        },
        "errorMessage": {
          "type": "string"
        }
      }
    },
    "dto.ActiveLicenseInfo": {
      "type": "object",
      "properties": {
        "licenseNumber": {
          "type": "string"
        },
        "npn": {
          "type": "string"
        },
        "residencyStatus": {
          "type": "string"
        }
      }
    },
    "dto.Appointment": {
      "type": "object",
      "properties": {
        "agencyAffiliations": {
          "type": "string"
        },
        "appointRenewalDate": {
          "type": "string"
        },
        "branchID": {
          "type": "string"
        },
        "coCode": {
          "description": "NAIC company code identifying the insurance company",
          "type": "string"
        },
        "companyName": {
          "description": "Name of the insurance carrier company",
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "fein": {
          "description": "Federal Employer Identification Number of the carrier",
          "type": "string"
        },
        "loa": {
          "description": "Line of Authority name. NIPR-sourced, values may change over time.",
          "type": "string"
        },
        "loaCode": {
          "description": "Line of Authority numeric code. NIPR-sourced, values may change over time.",
          "type": "integer"
        },
        "status": {
          "description": "Appointment status",
          "type": "string",
          "enum": [
            "Appointed",
            "Terminated"
          ]
        },
        "statusReasonDate": {
          "type": "string"
        },
        "terminationReason": {
          "type": "string"
        }
      }
    },
    "dto.AssignTerritoryRequestBody": {
      "type": "object",
      "required": [
        "territoryId"
      ],
      "properties": {
        "territoryId": {
          "type": "string"
        }
      }
    },
    "dto.AssignTerritoryResponseData": {
      "type": "object",
      "properties": {
        "assignedAt": {
          "type": "string"
        },
        "npn": {
          "type": "string"
        },
        "territoryId": {
          "type": "string"
        },
        "territoryName": {
          "type": "string"
        }
      }
    },
    "dto.AssignTerritorySuccessResponse": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/definitions/dto.AssignTerritoryResponseData"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "dto.AssignedProducerResponse": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "npn": {
          "type": "string"
        }
      }
    },
    "dto.Biographic": {
      "type": "object",
      "properties": {
        "companyName": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string"
        },
        "fein": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "npn": {
          "type": "string"
        },
        "otherNames": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.StateAlias"
          }
        },
        "stateCoID": {
          "type": "string"
        },
        "stateDomicile": {
          "type": "string"
        },
        "suffix": {
          "type": "string"
        }
      }
    },
    "dto.BulkOnboardRequestDto": {
      "type": "object",
      "required": [
        "npn",
        "onboardType"
      ],
      "properties": {
        "npn": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "onboardType": {
          "enum": [
            "lookup",
            "subscribe"
          ],
          "allOf": [
            {
              "$ref": "#/definitions/enum.OnboardType"
            }
          ]
        }
      }
    },
    "dto.BulkOnboardResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "dto.BulkOnboardStatusResponse": {
      "type": "object",
      "properties": {
        "failedNpns": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "failureCount": {
          "type": "integer"
        },
        "failureReason": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.FailureReason"
          }
        },
        "id": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "npns": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "successCount": {
          "type": "integer"
        },
        "totalCount": {
          "type": "integer"
        }
      }
    },
    "dto.BulkReportDetailsResponse": {
      "type": "object",
      "properties": {
        "currentPage": {
          "type": "integer"
        },
        "details": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.ProducerDetailDTO"
          }
        },
        "hasNextPage": {
          "type": "boolean"
        },
        "hasPreviousPage": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "pageSize": {
          "type": "integer"
        },
        "totalCount": {
          "type": "integer"
        }
      }
    },
    "dto.GetTerritoriesResponseData": {
      "type": "object",
      "properties": {
        "currentPage": {
          "type": "integer"
        },
        "hasNextPage": {
          "type": "boolean"
        },
        "hasPreviousPage": {
          "type": "boolean"
        },
        "pageSize": {
          "type": "integer"
        },
        "territories": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.TerritoryResponse"
          }
        },
        "totalCount": {
          "type": "integer"
        }
      }
    },
    "dto.GetTerritoriesSuccessResponse": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/definitions/dto.GetTerritoriesResponseData"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "dto.LOAResponse": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "residencyType": {
          "type": "string"
        }
      }
    },
    "dto.License": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "details": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.LicenseDetail"
          }
        },
        "lastUpdatedDate": {
          "type": "string"
        },
        "licenseClass": {
          "description": "License class name. NIPR-sourced, values may change over time.",
          "type": "string"
        },
        "licenseClassCode": {
          "description": "License class numeric code. NIPR-sourced, values may change over time.",
          "type": "integer"
        },
        "licenseExpiryDate": {
          "type": "string"
        },
        "licenseNumber": {
          "type": "string"
        },
        "licenseOriginalIssueDate": {
          "type": "string"
        },
        "residencyStatus": {
          "description": "e.g. Resident, Non-Resident",
          "type": "string"
        }
      }
    },
    "dto.LicenseConfigResponse": {
      "type": "object",
      "properties": {
        "licenseClass": {
          "type": "string"
        },
        "licenseClassCode": {
          "type": "string"
        },
        "loas": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.LOAResponse"
          }
        }
      }
    },
    "dto.LicenseDetail": {
      "type": "object",
      "properties": {
        "authorityIssueDate": {
          "type": "string"
        },
        "ceCompliance": {
          "type": "string"
        },
        "ceCreditsNeeded": {
          "type": "integer"
        },
        "ceRenewalDate": {
          "type": "string"
        },
        "loa": {
          "description": "Line of Authority name. NIPR-sourced, values may change over time.",
          "type": "string"
        },
        "loaCode": {
          "description": "Line of Authority numeric code. NIPR-sourced, values may change over time.",
          "type": "integer"
        },
        "status": {
          "description": "Line of Authority status",
          "type": "string",
          "enum": [
            "Active",
            "Inactive",
            "Cancelled"
          ]
        },
        "statusReason": {
          "type": "string"
        },
        "statusReasonDate": {
          "type": "string"
        }
      }
    },
    "dto.LicenseInfo": {
      "type": "object",
      "properties": {
        "appointments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.Appointment"
          }
        },
        "licenses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.License"
          }
        },
        "state": {
          "type": "string"
        }
      }
    },
    "dto.LoginRequest": {
      "type": "object",
      "required": [
        "clientId",
        "clientSecret"
      ],
      "properties": {
        "clientId": {
          "type": "string"
        },
        "clientSecret": {
          "type": "string"
        }
      }
    },
    "dto.LoginResponse": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        }
      }
    },
    "dto.NPNs": {
      "type": "object",
      "properties": {
        "addedAt": {
          "type": "string"
        },
        "npn": {
          "type": "string"
        }
      }
    },
    "dto.PDBRequest": {
      "type": "object",
      "properties": {
        "npn": {
          "type": "string"
        },
        "reportDate": {
          "$ref": "#/definitions/types.DateWithoutTime"
        }
      }
    },
    "dto.ProducerDetailDTO": {
      "type": "object",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.StateGroup"
          }
        },
        "biographic": {
          "$ref": "#/definitions/dto.Biographic"
        },
        "clearanceCertificationInfo": {
          "type": "string"
        },
        "contactInfos": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.StateGroup"
          }
        },
        "createdAt": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "isBetaResponse": {
          "type": "boolean"
        },
        "licenseInformation": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.LicenseInfo"
          }
        },
        "nasdExamDetails": {
          "type": "string"
        },
        "regulatoryActions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.RegulatoryActions"
          }
        },
        "transactionType": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      }
    },
    "dto.RegulatoryAction": {
      "type": "object",
      "properties": {
        "actionId": {
          "type": "string"
        },
        "dateOfAction": {
          "type": "string"
        },
        "disposition": {
          "type": "string"
        },
        "effectiveDate": {
          "type": "string"
        },
        "enterDate": {
          "type": "string"
        },
        "fileRef": {
          "type": "string"
        },
        "lengthOfOrder": {
          "type": "string"
        },
        "originOfAction": {
          "type": "string"
        },
        "penaltyFineForfeiture": {
          "type": "string"
        },
        "reasonForAction": {
          "type": "string"
        }
      }
    },
    "dto.RegulatoryActions": {
      "type": "object",
      "properties": {
        "regulatoryAction": {
          "$ref": "#/definitions/dto.RegulatoryAction"
        },
        "state": {
          "type": "string"
        }
      }
    },
    "dto.StateActiveLicenseInfo": {
      "type": "object",
      "properties": {
        "licenseInfo": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.ActiveLicenseInfo"
          }
        },
        "state": {
          "type": "string"
        }
      }
    },
    "dto.StateLicenseConfigResponse": {
      "type": "object",
      "properties": {
        "licenses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.LicenseConfigResponse"
          }
        },
        "stateCode": {
          "type": "string"
        }
      }
    },
    "dto.SubscriptionRequest": {
      "type": "object",
      "properties": {
        "npns": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "dto.SubscriptionResponse": {
      "type": "object",
      "properties": {
        "agencyId": {
          "type": "string"
        },
        "npns": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.NPNs"
          }
        }
      }
    },
    "dto.TerritoryResponse": {
      "type": "object",
      "properties": {
        "assignedProducers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.AssignedProducerResponse"
          }
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "states": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/dto.StateLicenseConfigResponse"
          }
        }
      }
    },
    "dto.UnassignTerritoryResponseData": {
      "type": "object",
      "properties": {
        "npn": {
          "type": "string"
        },
        "territoryId": {
          "type": "string"
        },
        "unassignedAt": {
          "type": "string"
        }
      }
    },
    "dto.UnassignTerritorySuccessResponse": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/definitions/dto.UnassignTerritoryResponseData"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "dto.UpdateUserRequest": {
      "type": "object",
      "properties": {
        "businessEmail": {
          "type": "string"
        },
        "webhookPreference": {
          "enum": [
            "PDB-update",
            "entity-info"
          ],
          "allOf": [
            {
              "$ref": "#/definitions/enum.PreferenceType"
            }
          ]
        },
        "webhookUrl": {
          "type": "string"
        }
      }
    },
    "dto.UpdateUserResponse": {
      "type": "object",
      "properties": {
        "businessEmail": {
          "type": "string",
          "example": "hello@insuretrek.com"
        },
        "preference": {
          "allOf": [
            {
              "$ref": "#/definitions/enum.PreferenceType"
            }
          ],
          "example": "PDB-update"
        },
        "userId": {
          "type": "string",
          "example": "60e3b8f7c29c4c1a5c8d8a76"
        },
        "webhookUrl": {
          "type": "string",
          "example": "https://insuretrek-api-platform.com"
        }
      }
    },
    "dto.UpdatedUserCredentialResponseDTO": {
      "type": "object",
      "properties": {
        "liveClientSecret": {
          "type": "string",
          "example": "LiveSecret456"
        },
        "testClientSecret": {
          "type": "string",
          "example": "TestSecret123"
        },
        "userId": {
          "type": "string",
          "example": "60e3b8f7c29c4c1a5c8d8a76"
        }
      }
    },
    "entity.Address": {
      "type": "object",
      "properties": {
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressLine3": {
          "type": "string"
        },
        "addressType": {
          "type": "string"
        },
        "addressTypeCode": {
          "type": "integer"
        },
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "lastUpdatedDate": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        }
      }
    },
    "entity.AgencyCredential": {
      "type": "object",
      "properties": {
        "agencyId": {
          "type": "string"
        },
        "agencyName": {
          "type": "string"
        },
        "clientId": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "deactivatedAt": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "isActive": {
          "type": "boolean"
        },
        "liveClientSecret": {
          "type": "string"
        },
        "testClientSecret": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      }
    },
    "entity.Contact": {
      "type": "object",
      "properties": {
        "businessEmail": {
          "type": "string"
        },
        "businessEmailLastUpdatedDate": {
          "type": "string"
        },
        "businessPhone": {
          "type": "string"
        },
        "businessPhoneLastUpdatedDate": {
          "type": "string"
        }
      }
    },
    "entity.FailureReason": {
      "type": "object",
      "properties": {
        "npn": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "entity.Names": {
      "type": "object",
      "properties": {
        "branchID": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "nameType": {
          "type": "string"
        },
        "stateCoID": {
          "type": "string"
        }
      }
    },
    "entity.StateAlias": {
      "type": "object",
      "properties": {
        "names": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.Names"
          }
        },
        "state": {
          "type": "string"
        }
      }
    },
    "entity.StateGroup": {
      "type": "object",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.Address"
          }
        },
        "contactInfo": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/entity.Contact"
          }
        },
        "state": {
          "type": "string"
        }
      }
    },
    "enum.OnboardType": {
      "type": "string",
      "enum": [
        "lookup",
        "subscribe",
        "team"
      ],
      "x-enum-varnames": [
        "OnboardLookup",
        "OnboardSubscribe",
        "OnboardTeam"
      ]
    },
    "enum.PreferenceType": {
      "type": "string",
      "enum": [
        "PDB-update",
        "entity-info"
      ],
      "x-enum-varnames": [
        "PDPUpdate",
        "EntityInfo"
      ]
    },
    "proto.Address": {
      "type": "object",
      "properties": {
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressLine3": {
          "type": "string"
        },
        "addressType": {
          "type": "string"
        },
        "addressTypeCode": {
          "type": "integer"
        },
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "lastUpdatedDate": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "integer"
        }
      }
    },
    "proto.Appointment": {
      "type": "object",
      "properties": {
        "appointRenewalDate": {
          "type": "string"
        },
        "appointmentEffectiveDate": {
          "type": "string"
        },
        "coCode": {
          "type": "integer"
        },
        "companyName": {
          "type": "string"
        },
        "fein": {
          "type": "integer"
        },
        "loa": {
          "type": "string"
        },
        "loaCode": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "statusReasonDate": {
          "type": "string"
        },
        "terminationEffectiveDate": {
          "type": "string"
        }
      }
    },
    "proto.ContactInfo": {
      "type": "object",
      "properties": {
        "businessEmail": {
          "type": "string"
        },
        "businessPhone": {
          "type": "string"
        },
        "fax": {
          "type": "string"
        }
      }
    },
    "proto.ContinuingEducation": {
      "type": "object",
      "properties": {
        "continuingEducationPeriod": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "statusDescription": {
          "type": "string"
        }
      }
    },
    "proto.License": {
      "type": "object",
      "properties": {
        "active": {
          "type": "string"
        },
        "continuingEducation": {
          "$ref": "#/definitions/proto.ContinuingEducation"
        },
        "lastUpdatedDate": {
          "type": "string"
        },
        "licenseClass": {
          "type": "string"
        },
        "licenseClassCode": {
          "type": "integer"
        },
        "licenseExpiryDate": {
          "type": "string"
        },
        "licenseNumber": {
          "type": "string"
        },
        "licenseOriginalIssueDate": {
          "type": "string"
        },
        "lineOfAuthority": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/proto.LineOfAuthority"
          }
        },
        "residencyStatus": {
          "type": "string"
        }
      }
    },
    "proto.LineOfAuthority": {
      "type": "object",
      "properties": {
        "authorityIssueDate": {
          "type": "string"
        },
        "loa": {
          "type": "string"
        },
        "loaCode": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "statusReason": {
          "type": "string"
        },
        "statusReasonDate": {
          "type": "string"
        }
      }
    },
    "proto.PdbInfo": {
      "type": "object",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/proto.Address"
          }
        },
        "appointments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/proto.Appointment"
          }
        },
        "contactInfo": {
          "$ref": "#/definitions/proto.ContactInfo"
        },
        "licenses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/proto.License"
          }
        },
        "personName": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/proto.PersonName"
          }
        },
        "state": {
          "type": "string"
        }
      }
    },
    "proto.PersonName": {
      "type": "object",
      "properties": {
        "firstname": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "typeCode": {
          "type": "string"
        }
      }
    },
    "proto.RetrievedPdbUserInfoDTO": {
      "type": "object",
      "properties": {
        "npn": {
          "type": "string"
        },
        "pdbInfo": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/proto.PdbInfo"
          }
        },
        "reportDate": {
          "type": "string"
        }
      }
    },
    "types.DateWithoutTime": {
      "type": "object",
      "properties": {
        "time.Time": {
          "type": "string"
        }
      }
    }
  },
  "tags": [
    {
      "name": "Auth"
    },
    {
      "name": "Account"
    },
    {
      "name": "Producer"
    },
    {
      "name": "Subscription"
    },
    {
      "name": "Territory"
    }
  ]
}
