swagger: "2.0" info: description: Taxnexus Onboarding Service title: board termsOfService: "http://taxnexus.net/terms/" contact: email: noc@taxnexus.net license: name: "Proprietary - Copyright (c) 2018-2021 by Taxnexus, Inc." version: 0.0.2 schemes: - http host: "board.vernonkeenan.com:8080" basePath: /v1 produces: - application/json paths: /developers: options: description: CORS support operationId: developerOptions responses: "200": $ref: "#/responses/CORSResponse" tags: - cors post: security: - ApiKeyAuth: [] consumes: - application/json description: Register new developers with POST operationId: postDevelopers parameters: - $ref: "#/parameters/developerRequest" responses: "200": $ref: "#/responses/DeveloperResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" summary: Onboard new developer tags: - Developers /iqs: options: description: CORS support operationId: iqOptions responses: "200": $ref: "#/responses/CORSResponse" tags: - cors post: security: - ApiKeyAuth: [] consumes: - application/json description: Register new Taxnexus IQ Customer with POST operationId: postIQ parameters: - $ref: "#/parameters/iqRequest" responses: "200": $ref: "#/responses/IqResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" summary: Onboard new new Taxnexus IQ Customer tags: - Iq /leads: options: description: CORS support operationId: leadsOptions responses: "200": $ref: "#/responses/CORSResponse" tags: - cors post: consumes: - application/json description: Add a new full Lead Record operationId: postLeads parameters: - $ref: "#/parameters/leadRequest" responses: "200": $ref: "#/responses/LeadResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Add a new Lead record tags: - Leads put: description: Update Lead records operationId: putLeads parameters: - $ref: "#/parameters/leadRequest" responses: "200": $ref: "#/responses/LeadResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Update Leads tags: - Leads /userauths: options: description: CORS support operationId: userAuthOptions responses: "200": $ref: "#/responses/CORSResponse" tags: - cors "/userauths/{usernamePath}": get: description: Return a single UserAuth object from datastore as a Singleton operationId: getUserAuth parameters: - $ref: "#/parameters/usernamePath" responses: "200": $ref: "#/responses/UserAuthResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Get a single UserAuth object tags: - UserAuth /users: get: description: Get a clean user record operationId: getUsers parameters: - $ref: "#/parameters/emailQueryRequired" responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] tags: - Users options: description: CORS support operationId: userOptions responses: "200": $ref: "#/responses/CORSResponse" tags: - cors definitions: Account: properties: AccountNumber: description: Account Number type: string AccountSource: description: The marketing orgin of this account type: string Active: description: Active type: boolean AdministrativeLevel: description: "For tax authorities, this account's administrative level, e.g. Local, County, State or Federal" type: string Amount: description: Rollup Tax Amount format: double type: number AmountInvoiced: description: Amount Invoiced format: double type: number AmountPaid: description: Amount Paid format: double type: number AnnualRevenue: description: Annual Revenue Estimate format: double type: number Balance: description: Account Balance format: double type: number BillingAddress: $ref: "#/definitions/Address" BillingContactID: description: Contact ID type: string BillingPreference: description: Billing Preference type: string BusinessAddress: $ref: "#/definitions/Address" CannabisCustomer: description: Is this a cannabis customer? type: boolean ChannelProgramLevelName: description: Channel Program Level Name type: string ChannelProgramName: description: Channel Program Name type: string ClientEndDate: description: Client End Date type: string ClientStartDate: description: Client Start Date type: string CompanyID: description: The Company ID of this Account type: string CoordinateID: description: The Id of the geo coordinates of this account type: string CreatedByID: description: Created By User ID type: string CreatedDate: description: Created Date type: string CustomerID: description: Customer ID from source system type: string CustomerPriority: description: Customer Priority type: string DBA: description: This Account's 'Doing Business As' name type: string DUNSNumber: description: D-U-N-S Number type: string DandBCompanyID: description: D-n-B Company type: string DefaultAddress: $ref: "#/definitions/Address" DefaultBackendID: description: Default Backend ID type: string DefaultDeliveryContactID: description: Default Delivery Address Contact ID type: string DefaultEndUserID: description: Default End User Contact ID type: string Description: description: Description type: string EIN: description: EIN type: string Email: description: Main Account Email type: string EnrollmentStatus: description: Enrollment Status type: string Fax: description: Fax type: string ID: description: Taxnexus Account Id type: string ISPCustomer: description: ISP Customer? type: boolean Industry: description: Industry type: string IsCustomerPortal: description: Customer Portal Account type: boolean IsPartner: description: Partner Account type: boolean JigSaw: description: Data.com Key type: string LastModifiedByID: description: Last Modified By User ID type: string LastModifiedDate: description: Last Modified Date type: string MSPCustomer: description: MSP Customer? type: boolean NAICSCode: description: NAICS Code type: string NAICSDesc: description: NAICS Description type: string Name: description: Account Name type: string NumberOfEmployees: description: Employee Count Estimate format: int64 type: number NumberOfLocations: description: Number of Locations Estimate format: int64 type: number OpenCharges: description: Open Charges format: double type: number OrderContactID: description: Vendor Order Contact ID type: string OrderEmail: description: Order Email type: string OwnerID: description: Account Owner User ID type: string Ownership: description: Ownership type: string ParentFK: description: Parent Foreign Key type: string ParentID: description: Parent Account type: string Phone: description: Phone type: string PlaceID: description: The ID of the Place situs record that applies to this Account type: string PreparerID: description: Tax Preparer Contact ID type: string Rating: description: Rating type: string RatingEngineID: description: Rating Engine identifier type: string Ref: description: External Reference ID type: string RevenueBase: description: Rollup Revenue Base format: double type: number RevenueNet: description: Rollup Revenue Net format: double type: number RevenueNotTaxable: description: Rollup Revenue Not Taxable format: double type: number SIC: description: SIC Code type: string SICDesc: description: SIC Description type: string ShippingAddress: $ref: "#/definitions/Address" ShippingCensusTract: description: Shipping Census Tract type: string ShippingConactID: description: Shipping Contact ID type: string ShippingCounty: description: Shipping County type: string Site: description: Account Site type: string Status: description: Account Status type: string TaxExemption: description: Tax Exemption type: string TaxOnTax: description: Rollup Tax On Tax format: double type: number TelecomCustomer: description: Telecom Customer? type: boolean TickerSymbol: description: Ticker Symbol type: string TradeStyle: description: Tradestyle type: string Type: description: Type type: string UnappliedPayments: description: Unapplied Payments format: double type: number UnitBase: description: Rollup Unit Base type: number UpsellOpportunity: description: Upsell Opportunity type: string WHMCSClientID: description: WHMCS Client ID format: int64 type: number Website: description: Website type: string XeroContactID: description: Xero Contact ID type: string YearStarted: description: Year Started type: string type: object Address: properties: City: description: City type: string Country: description: Country full name type: string CountryCode: description: Country Code type: string PostalCode: description: Postal Code type: string State: description: State full name type: string StateCode: description: State Code type: string Street: description: Street number and name type: string type: object Contact: properties: AccountID: description: The primary account ID of this contact type: string AssistantName: description: Assistant Name type: string AssistantPhone: description: Asst. Phone type: string BirthDate: description: Birthdate type: string CreatedByID: description: Created By User ID type: string CreatedDate: description: Created Date type: string Department: description: Department type: string Description: description: Description type: string DoNotCall: description: Do Not Call? type: boolean Email: description: Email address type: string EmailBounceDate: description: Email Bounce Date type: string EmailBouncedReason: description: Email Bounce Reason type: string EnrollmentStatus: description: Taxnexus Enrollment Status type: string Fax: description: Fax Number type: string FirstName: description: First Name type: string HasOptedOutOfEmail: description: Email Opt Out type: boolean HasOptedOutOfFax: description: Fax Opt Out type: boolean HomePhone: description: Home Phone type: string ID: description: Taxnexus Record Id type: string IsEmailBounced: description: Does this contact have bounced emails? type: boolean IsProvisioned: description: Is Provisioned? type: boolean LastModifiedByID: description: Last Modified By User ID type: string LastModifiedDate: description: Last Modified Date type: string LastName: description: Last Name type: string LeadSource: description: Lead Source type: string Level: description: Level type: string LinkedIn: description: LinkedIn Page type: string MailingAddress: $ref: "#/definitions/Address" MailingLists: description: Mailing Lists type: string MobilePhone: description: Mobile Phone type: string Name: description: Full Name type: string OtherAddress: $ref: "#/definitions/Address" OtherPhone: description: Other Phone type: string OwnerID: description: The User ID of the user who owns this Contact type: string PersonalEmail: description: Personal Email Address for this Contact type: string Phone: description: Phone Number type: string PhotoURL: description: URL of a photograph of this User type: string RecruitingStatus: description: Recruiting Status type: string Ref: description: "External reference to this contact, if any" type: string ReportsToID: description: Reports To Contact ID type: string Salutation: description: Contact Salutation type: string Status: description: The Contact Status type: string TenantID: description: Tenant Identifier type: string Title: description: Contact Title type: string Type: description: Contact Type type: string type: object Database: description: A Database provisioned and owned by a Tenant properties: Active: description: Is this database active? type: boolean ClusterID: description: The ID of the Cluster in which this database is deployed type: string CreatedByID: description: Created By type: string CreatedDate: description: Created Date type: string DSN: description: Database connection string type: string DatabaseName: description: The name of the physical database in the cluster type: string ID: description: Record Id type: string LastModifiedByID: description: Last Modified By type: string LastModifiedDate: description: Last Modifed Date type: string Microservices: description: List of Taxnexus microservices implemented by this Database type: string Status: description: The current status of this Tenant type: string TenantID: description: The ID of the tenant who owns this Database type: string Type: description: "The type of Database (mysql, etc)" type: string type: object Developer: properties: Account: $ref: "#/definitions/Account" Contact: $ref: "#/definitions/Contact" PaymentMethod: $ref: "#/definitions/PaymentMethod" type: object RuleExecution: type: object properties: SagaID: description: The Taxnexus SagaID for this rule execution type: string SagaType: description: The Taxnexus SagaType for this rule execution type: string RuleID: description: The Temporal Workflow ID type: string RunID: description: The Temporal First Started Workflow Run ID type: string IQ: properties: Account: $ref: "#/definitions/Account" Contact: $ref: "#/definitions/Contact" Lead: $ref: "#/definitions/Lead" PaymentMethod: $ref: "#/definitions/PaymentMethod" Tenant: $ref: "#/definitions/Tenant" User: $ref: "#/definitions/User" type: object Error: properties: code: format: int64 type: integer fields: type: string message: type: string type: object Lead: properties: Address: $ref: "#/definitions/Address" Company: description: Company type: string Description: description: Description type: string Email: description: Email type: string FirstName: description: First Name type: string ID: description: Taxnexus Record Id type: string LastName: description: Last Name type: string MobilePhone: description: Mobile type: string Name: description: Name type: string OwnerId: description: LeadBasic Owner type: string PartnerAccountId: description: Partner Account type: string Phone: description: Phone type: string ProductID: description: Product type: string RefererURL: description: referer_url type: string Status: description: LeadBasic Status type: string Title: description: Title type: string Type: description: Type type: string UTMCampaign: description: utm_campaign type: string UTMContent: description: utm_content type: string UTMMedium: description: utm_medium type: string UTMSource: description: utm_source type: string UTMTerm: description: utm_term type: string Website: description: Website type: string type: object PaymentMethod: description: Describes the EFT or other payment information for an account and billing contact properties: AccountID: description: Account type: string AchAccountType: description: ACH Account Type type: string AchBankAccount: description: ACH Bank Account type: string AchRouting: description: ACH Routing type: string Active: description: Active? type: boolean Autopay: description: Autopay? type: boolean BankName: description: Bank Name type: string BillingContactID: description: Billing Contact type: string CCnumber: description: Credit Card Number type: string CCtype: description: CC Type type: string CompanyID: description: Company type: string ContractID: description: Contract type: string CreatedByID: description: Created By type: string CreatedDate: description: Created Date type: string Default: description: Default Payment Method? type: boolean ExpirationDate: description: Expiration Date type: string ExpirationMonth: description: Expiration Month type: string ExpirationYear: description: Expiration Year type: string Gateway: description: Gateway type: string GatewayKey: description: Gateway Key type: string ID: description: Taxnexus Record Id type: string LastModifiedByID: description: Last Modified By type: string LastModifiedDate: description: Last Modified Date type: string Nickname: description: Nickname type: string RecordType: description: Record Type type: string Ref: description: External Reference type: string type: object Role: description: A functional role within a Tenant properties: Auth0RoleID: description: The corresponding Auth0 Role type: string CreatedByID: description: Created By type: string CreatedDate: description: Created Date type: string Description: description: Role Description type: string ID: description: Record Id type: string LastModifiedByID: description: Last Modified By type: string LastModifiedDate: description: Last Modifed Date type: string RoleName: description: The name of this role type: string TenantID: description: The ID of the Tenant that owns this Role type: string type: object Tenant: description: Taxnexus Account Tenant properties: AccountID: description: The Account that owns this Tenant type: string Active: description: Is this Tenant currently active? type: boolean CreatedByID: description: Created By type: string CreatedDate: description: Created Date type: string Databases: items: $ref: "#/definitions/Database" type: array ID: description: Record Id type: string LastModifiedByID: description: Last Modified By type: string LastModifiedDate: description: Last Modifed Date type: string Roles: items: $ref: "#/definitions/Role" type: array Status: description: The current status of this Tenant type: string TenantName: description: Name of the Tenant Resource type: string TenantUsers: items: $ref: "#/definitions/TenantUser" type: array Type: description: The type of Tenant type: string Version: description: The version number of the Tenant Onboarding system used to create this tenant type: string type: object TenantUser: description: Relationship object that connects users to a tenant properties: AccessLevel: description: The makeTenantUser access level for this User type: string AccountID: description: Account ID type: string Auth0UserID: description: Auth0 User ID type: string CompanyName: description: Account Name type: string ContactID: description: Contact ID type: string TaxnexusAccount: description: Taxnexus Account type: string TenantActive: description: Tenant active? type: boolean TenantID: description: The Tenant ID type: string TenantName: description: Tenant Name type: string TenantStatus: description: Tenant Status type: string TenantType: description: Tenant type type: string TenantVersion: description: Tenant Version type: string UserEmail: description: User Email Address type: string UserFullName: description: User Full Name type: string UserID: description: The User ID type: string Username: description: Username type: string User: properties: APIKey: description: API Key type: string AboutMe: description: About Me type: string AccountID: description: Account ID type: string Address: $ref: "#/definitions/Address" Alias: description: Alias type: string Auth0UserID: description: Auth0 User Id type: string CommunityNickname: description: Nickname type: string CompanyName: description: Company Name type: string ContactID: description: Contact type: string CreatedByID: description: Created User ID type: string CreatedDate: description: Date Created type: string DelegatedApproverID: description: Delegated Approver type: string Department: description: Department type: string Division: description: Division type: string Email: description: Email address type: string EmployeeNumber: description: Employee Number type: string EndOfDay: description: Time day ends type: string Environment: description: Environment type: string Extension: description: Extension type: string FabricAPIKey: description: Fabric API Key type: string Fax: description: Fax type: string FirstName: description: The first name type: string ForecastEnabled: description: Allow Forecasting type: boolean FullPhotoURL: description: Full Photo URL type: string ID: description: Taxnexus ID type: string IsActive: description: Active type: boolean IsPortalEnabled: description: Is the user enabled for Communities? type: boolean IsProphilePhotoActive: description: Has Profile Photo type: boolean IsSystemControlled: type: boolean LastIP: description: IP address of last login type: string LastLogin: description: Last login time type: string LastModifiedByID: description: Last Modified User ID type: string LastModifiedDate: description: Last Modified Date type: string LastName: description: The Last Name type: string LoginCount: description: Number of times user has logged in format: int64 type: number ManagerID: description: Manager type: string MobilePhone: description: Mobile type: string Name: description: Name type: string OutOfOfficeMessage: description: Out of office message type: string Phone: description: Phone type: string PortalRole: description: Portal Role Level type: string ProfileID: description: Profile type: string ReceivesAdminEmails: description: Info Emails type: boolean ReceivesAdminInfoEmails: description: Admin Info Emails type: boolean SenderEmail: description: Email Sender Address type: string SenderName: description: Email Sender Name type: string Signature: description: Email Signature type: string SmallPhotoURL: description: Small Photo URL type: string StartOfDay: description: The time day starts type: string TaxnexusAccount: description: Taxnexus Account type: string TenantID: description: Tenant ID type: string TenantUsers: items: $ref: "#/definitions/TenantUser" type: array TimeZone: description: Time Zone type: string Title: description: Title type: string UserRoleID: description: Role type: string UserRoles: items: $ref: "#/definitions/UserRole" type: array UserType: description: User Type type: string Username: description: Username type: string type: object UserAuth: properties: APIKey: description: API Key type: string AccountID: description: Account ID type: string ContactID: description: Contact type: string Email: description: Email address type: string Roles: description: Valid Roles for all tenants items: type: string type: array Tenants: description: Valid Tenants items: type: string type: array UserID: description: Taxneuxs User ID type: string UserRole: description: Relationship object to connect a user to a role properties: AccountID: description: Account Id type: string Auth0RoleID: description: Linked role ID type: string Auth0UserID: description: Auth0 User ID type: string CompanyName: description: Company Name type: string ContactID: description: Contact ID type: string RoleDescription: description: Role description type: string RoleID: description: The Role ID type: string RoleName: description: Role Name type: string TaxnexusAccount: description: Taxnexus Account Number type: string UserEmail: description: User Email Address type: string UserFullName: description: User Full Name type: string UserID: description: The User ID type: string Username: description: Username type: string type: object parameters: developerRequest: description: A single Developer struct for onboarding in: body name: developerRequest required: true schema: $ref: "#/definitions/Developer" iqRequest: description: A single Taxnexus IQ Customer struct for onboarding in: body name: iqRequest required: true schema: $ref: "#/definitions/IQ" emailPath: description: Email address in the query path in: path name: emailPath required: true type: string usernamePath: description: Username in the query path in: path name: usernamePath required: true type: string emailQuery: description: Email address used for identity lookup in: query name: email required: false type: string emailQueryRequired: description: Email address in: query name: email required: true type: string leadRequest: description: A new Lead record as a single JSON object in: body name: leadRequest required: true schema: $ref: "#/definitions/Lead" responses: AccessForbidden: description: "Access forbidden, account lacks access" headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" CORSResponse: description: CORS OPTIONS response headers: Access-Control-Allow-Credentials: type: string Access-Control-Allow-Headers: type: string Access-Control-Allow-Methods: type: string Access-Control-Allow-Origin: type: string Access-Control-Expose-Headers: type: string Access-Control-Max-Age: type: string Cache-Control: type: string Conflict: description: Conflict headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" DeleteResponse: description: Taxnexus Response with Message Objects with Delete Status headers: Access-Control-Allow-Origin: type: string DeveloperResponse: description: Taxnexus Response with a Developer object headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/RuleExecution" IqResponse: description: Taxnexus Response with an IQ object headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/RuleExecution" InvalidDataError: description: Invalid data was sent headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" LeadResponse: description: Taxnexus Response with an array of Lead objects headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/RuleExecution" NotFound: description: Resource was not found headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" ServerError: description: Server Internal Error headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" Unauthorized: description: "Access unauthorized, invalid API-KEY was used" headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" UnprocessableEntity: description: "Unprocessable Entity, likely a bad parameter" headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/Error" UserAuthResponse: description: Taxneuxs User Authentication Response headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/UserAuth" UserResponse: description: User Response headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/User" securityDefinitions: ApiKeyAuth: type: apiKey name: X-API-Key in: header