{ "openapi": "3.0.4", "info": { "title": "leadping.Api", "description": "leadping API", "license": { "name": "MIT", "url": "https://opensource.org/licenses/MIT" }, "version": "v1" }, "servers": [ { "url": "https://api.leadping.ai", "description": "Production" } ], "paths": { "/businesses/me": { "get": { "tags": [ "Businesses" ], "summary": "Gets current user's business.", "operationId": "Businesses_GetForCurrentUser_NoParams", "responses": { "200": { "description": "Business was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BusinessResponse" } } } }, "404": { "description": "The specified business was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Businesses" ], "summary": "Updates current user's business.", "operationId": "Businesses_UpdateForCurrentUser_request", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BusinessRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BusinessResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/conversations/my": { "post": { "tags": [ "Conversations" ], "summary": "Gets conversations for the current user.", "operationId": "Conversations_GetAllForCurrentUser_requestDataOptions", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } }, "text/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ConversationResponsePagedResult" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponsePagedResult" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ConversationResponsePagedResult" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/dispositions": { "post": { "tags": [ "Dispositions" ], "summary": "Creates a disposition.", "operationId": "Dispositions_Create_request", "requestBody": { "description": "The disposition data to create.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DispositionRequest" } } } }, "responses": { "201": { "description": "Disposition was successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DispositionResponse" } } } }, "404": { "description": "A related resource was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/dispositions/{id}": { "get": { "tags": [ "Dispositions" ], "summary": "Gets a disposition.", "operationId": "Dispositions_Get_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the disposition to retrieve.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Disposition was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DispositionResponse" } } } }, "404": { "description": "The specified disposition was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "delete": { "tags": [ "Dispositions" ], "summary": "Deletes a disposition.", "operationId": "Dispositions_Delete_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the disposition to delete.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Disposition was successfully deleted." }, "404": { "description": "The specified disposition was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/dispositions/lead/{leadId}": { "get": { "tags": [ "Dispositions" ], "summary": "Gets dispositions for lead.", "operationId": "Dispositions_GetByLeadId_leadId", "parameters": [ { "name": "leadId", "in": "path", "description": "The ID of the lead to get dispositions for.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Dispositions were successfully retrieved.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DispositionResponse" } } } } }, "404": { "description": "The specified lead was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/events/all/my": { "post": { "tags": [ "Events" ], "summary": "Gets all events for current user.", "operationId": "Events_GetAllForCurrentUser_options", "requestBody": { "description": "Pagination, filtering, and sorting options.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Events were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/events/leads/{leadId}": { "post": { "tags": [ "Events" ], "summary": "Gets all events for lead.", "operationId": "Events_GetAllForLead_leadId_options", "parameters": [ { "name": "leadId", "in": "path", "description": "The ID of the lead.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Pagination, filtering, and sorting options.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Events for the lead were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/events/{eventId}": { "get": { "tags": [ "Events" ], "summary": "Gets event by ID.", "operationId": "Events_GetById_eventId", "parameters": [ { "name": "eventId", "in": "path", "description": "The ID of the event.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Event was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventTableRow" } } } }, "404": { "description": "Event was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/events/{eventId}/detail": { "get": { "tags": [ "Events" ], "summary": "Gets event details by ID.", "operationId": "Events_GetDetailById_eventId", "parameters": [ { "name": "eventId", "in": "path", "description": "The ID of the event.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Event details were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventDetailResponse" } } } }, "404": { "description": "Event was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/leads": { "post": { "tags": [ "Leads" ], "summary": "Creates a lead externally.", "operationId": "Leads_CreateExternal_request", "requestBody": { "description": "The lead data submitted by the external system.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadRequest" } } } }, "responses": { "201": { "description": "Lead was successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadResponse" } } } }, "404": { "description": "A related resource was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/leads/{id}": { "get": { "tags": [ "Leads" ], "summary": "Gets a lead by ID for current user.", "operationId": "Leads_GetForCurrentUser_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the lead to retrieve.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Lead was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadResponse" } } } }, "404": { "description": "The specified lead was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "The user does not own this lead.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Leads" ], "summary": "Updates a lead.", "operationId": "Leads_Update_id_request", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the lead to update.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The updated lead data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadRequest" } } } }, "responses": { "200": { "description": "Lead was successfully updated.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadResponse" } } } }, "404": { "description": "The specified lead was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "delete": { "tags": [ "Leads" ], "summary": "Deletes a lead.", "operationId": "Leads_Delete_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the lead to delete.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Lead was successfully deleted." }, "404": { "description": "The specified lead was not found.", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/leads/all/my": { "post": { "tags": [ "Leads" ], "summary": "Gets all leads for current user.", "operationId": "Leads_GetAllForCurrentUser_options", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Leads were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed." } } } }, "/notifications/me": { "post": { "tags": [ "Notifications" ], "summary": "Gets notifications for current user.", "operationId": "Notifications_GetAllForCurrentUser_options", "requestBody": { "description": "Request data options for pagination, filtering, and sorting.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationTableRowPagedResult" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/notifications/unread-count": { "get": { "tags": [ "Notifications" ], "summary": "Gets unread notification count.", "operationId": "Notifications_GetUnreadCount_NoParams", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "integer", "format": "int32" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/notifications/{id}/mark-read": { "post": { "tags": [ "Notifications" ], "summary": "Marks notification as read.", "operationId": "Notifications_MarkAsRead_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the notification to mark as read.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "boolean" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/notifications/mark-all-read": { "post": { "tags": [ "Notifications" ], "summary": "Marks all notifications as read.", "operationId": "Notifications_MarkAllAsRead_NoParams", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "integer", "format": "int32" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/notifications/announcements": { "post": { "tags": [ "Notifications" ], "summary": "Gets announcements.", "operationId": "Notifications_GetAnnouncements_options", "requestBody": { "description": "Request data options for pagination, filtering, and sorting.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationTableRowPagedResult" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/payment-methods/{id}": { "get": { "tags": [ "PaymentMethods" ], "summary": "Gets a payment method.", "operationId": "PaymentMethods_Get_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the payment method to retrieve.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Payment method was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StripePaymentMethodResponse" } } } }, "404": { "description": "The specified payment method was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "delete": { "tags": [ "PaymentMethods" ], "summary": "Deletes a payment method.", "operationId": "PaymentMethods_Delete_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the payment method to delete.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Payment method was successfully deleted.", "content": { "application/json": { "schema": { "type": "string" } } } }, "404": { "description": "The specified payment method was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/sources": { "post": { "tags": [ "Sources" ], "summary": "Creates a source.", "operationId": "Sources_Create_request", "requestBody": { "description": "The source data to create.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceRequest" } } } }, "responses": { "201": { "description": "Source was successfully created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "400": { "description": "The request was invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/sources/{id}": { "put": { "tags": [ "Sources" ], "summary": "Updates a source.", "operationId": "Sources_Update_id_request", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the source to update.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The updated source data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceRequest" } } } }, "responses": { "200": { "description": "Source was successfully updated.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "404": { "description": "The specified source was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "get": { "tags": [ "Sources" ], "summary": "Gets a source.", "operationId": "Sources_Get_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the source to retrieve.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Source was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "404": { "description": "The specified source was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "delete": { "tags": [ "Sources" ], "summary": "Deletes a source.", "operationId": "Sources_Delete_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the source to delete.", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Source was successfully deleted." }, "404": { "description": "The specified source was not found.", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/sources/all": { "post": { "tags": [ "Sources" ], "summary": "Gets all sources for admin.", "operationId": "Sources_GetAllForAdmin_options", "requestBody": { "description": "Pagination, filtering, and sorting options.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Sources were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed." } } } }, "/sources/all/my": { "post": { "tags": [ "Sources" ], "summary": "Gets all sources for current user.", "operationId": "Sources_GetAllForCurrentUser_options", "requestBody": { "description": "Pagination, filtering, and sorting options.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Sources were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed." } } } }, "/sources/all/business/{businessId}": { "post": { "tags": [ "Sources" ], "summary": "Gets all sources for business.", "operationId": "Sources_GetAllForBusiness_businessId_options", "parameters": [ { "name": "businessId", "in": "path", "description": "The ID of the business.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Pagination, filtering, and sorting options.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Sources were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed." } } } }, "/transactions/{id}": { "get": { "tags": [ "Transactions" ], "summary": "Gets a transaction by ID for current user.", "operationId": "Transactions_GetForCurrentUser_id", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the transaction to retrieve.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Transaction was successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionResponse" } } } }, "404": { "description": "The specified transaction was not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "The user does not own this transaction.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/transactions/all/my": { "post": { "tags": [ "Transactions" ], "summary": "Gets all transactions for current user.", "operationId": "Transactions_GetAllForCurrentUser_options", "requestBody": { "description": "Pagination, filtering, and sorting options.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDataOptions" } } } }, "responses": { "200": { "description": "Transactions were successfully retrieved.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionTableRowPagedResult" } } } }, "400": { "description": "The request was invalid or malformed." } } } }, "/users/me/paymentmethod": { "get": { "tags": [ "Users" ], "summary": "Gets current user's payment method.", "operationId": "Users_GetPaymentMethodForCurrentUser_NoParams", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StripePaymentMethodResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/users/me": { "get": { "tags": [ "Users" ], "summary": "Gets current user's info.", "operationId": "Users_GetForCurrentUser_NoParams", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponse" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Users" ], "summary": "Updates current user's info.", "operationId": "Users_UpdateForCurrentUser_request", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/users/change-billing-plan": { "put": { "tags": [ "Users" ], "summary": "Changes billing plan.", "operationId": "Users_ChangeBillingPlan_request", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangeBillingPlanRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/users/compliance": { "put": { "tags": [ "Users" ], "summary": "Updates compliance info.", "operationId": "Users_UpdateCompliance_request", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceUpdateRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } } }, "components": { "schemas": { "BillingPlan": { "enum": [ "Annual", "Monthly" ], "type": "string", "additionalProperties": false }, "BusinessRequest": { "required": [ "name" ], "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "maxLength": 255, "minLength": 0, "type": "string" }, "secondaryName": { "type": "string", "nullable": true }, "status": { "$ref": "#/components/schemas/BusinessStatus" }, "phone": { "type": "string", "nullable": true }, "address": { "$ref": "#/components/schemas/StreetAddress" }, "website": { "type": "string", "nullable": true }, "vertical": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "ein": { "type": "string", "nullable": true }, "isYoungerThan90": { "type": "boolean", "nullable": true }, "einDocument": { "$ref": "#/components/schemas/IdNameValue" }, "phones": { "type": "array", "items": { "$ref": "#/components/schemas/IdNameValue" }, "nullable": true }, "setupStep": { "$ref": "#/components/schemas/BusinessSetupStep" } }, "additionalProperties": false }, "BusinessResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "name": { "type": "string", "nullable": true }, "secondaryName": { "type": "string", "nullable": true }, "user": { "$ref": "#/components/schemas/IdNamePair" }, "status": { "$ref": "#/components/schemas/BusinessStatus" }, "phone": { "type": "string", "nullable": true }, "website": { "type": "string", "nullable": true }, "address": { "$ref": "#/components/schemas/StreetAddress" }, "vertical": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "ein": { "type": "string", "nullable": true }, "einDocument": { "$ref": "#/components/schemas/IdNameValue" }, "domain": { "type": "string", "nullable": true }, "phones": { "type": "array", "items": { "$ref": "#/components/schemas/IdNameValue" }, "nullable": true }, "site": { "$ref": "#/components/schemas/IdNamePair" }, "setupStep": { "$ref": "#/components/schemas/BusinessSetupStep" } }, "additionalProperties": false }, "BusinessSetupStep": { "enum": [ "DomainFinding", "DomainOptionsFound", "SiteGenerating", "SiteGenerated", "BrandSubmitted", "BrandApproved", "CampaignSubmitted", "CampaignApproved", "CarrierReviewing", "TenDlcComplete", "Complete" ], "type": "string", "additionalProperties": false }, "BusinessStatus": { "enum": [ "SettingUp", "SetupCompleted", "Active" ], "type": "string", "additionalProperties": false }, "CarrierType": { "enum": [ "FixedLine", "Mobile", "Voip", "FixedLineOrMobile", "TollFree", "PremiumRate", "SharedCost", "PersonalNumber", "Pager", "Uan", "Voicemail", "Unknown" ], "type": "string", "additionalProperties": false }, "ChangeBillingPlanRequest": { "type": "object", "properties": { "billingPlan": { "$ref": "#/components/schemas/BillingPlan" }, "userId": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ComplianceUpdateRequest": { "type": "object", "properties": { "compliance": { "$ref": "#/components/schemas/UserCompliance" }, "source": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ConversationResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "leadId": { "type": "string", "nullable": true }, "firstName": { "type": "string", "nullable": true }, "lastName": { "type": "string", "nullable": true }, "lastSnippet": { "type": "string", "nullable": true }, "lastEventAt": { "type": "string", "format": "date-time", "nullable": true }, "isUnread": { "type": "boolean" } }, "additionalProperties": false }, "ConversationResponsePagedResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationResponse" }, "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32", "nullable": true }, "continuationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DispositionRequest": { "type": "object", "properties": { "leadId": { "type": "string", "description": "The ID of the lead this disposition is associated with.", "nullable": true }, "type": { "type": "string", "description": "The type of disposition (e.g., \"Call\", \"Text\").", "nullable": true }, "outcome": { "type": "string", "description": "The outcome or result of the disposition.", "nullable": true }, "notes": { "type": "string", "description": "Additional notes or comments about the disposition.", "nullable": true }, "timestamp": { "type": "string", "description": "The timestamp when the disposition occurred.", "format": "date-time" } }, "additionalProperties": false, "description": "Request model for creating or updating a disposition." }, "DispositionResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the disposition.", "nullable": true }, "leadId": { "type": "string", "description": "The ID of the lead this disposition is associated with.", "nullable": true }, "type": { "type": "string", "description": "The type of disposition (e.g., \"Call\", \"Text\").", "nullable": true }, "outcome": { "type": "string", "description": "The outcome or result of the disposition.", "nullable": true }, "notes": { "type": "string", "description": "Additional notes or comments about the disposition.", "nullable": true }, "timestamp": { "type": "string", "description": "The timestamp when the disposition occurred.", "format": "date-time" }, "createdAt": { "type": "string", "description": "The timestamp when the disposition was created.", "format": "date-time" }, "updatedAt": { "type": "string", "description": "The timestamp when the disposition was last updated.", "format": "date-time" } }, "additionalProperties": false, "description": "Response model for disposition data." }, "EmploymentType": { "enum": [ "Employed", "PartTime", "SelfEmployed", "Contractor", "Unemployed", "Retired", "Student", "Military", "Homemaker", "Disabled", "Other" ], "type": "string", "additionalProperties": false }, "EventDetailResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "eventType": { "type": "string", "nullable": true }, "secondaryEventType": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "user": { "$ref": "#/components/schemas/IdNamePair" }, "leadId": { "type": "string", "nullable": true }, "fullPayload": { "type": "string", "description": "The full event payload as JSON string for generic display", "nullable": true } }, "additionalProperties": false }, "EventTableRow": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the event.", "nullable": true }, "eventType": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "createdAtDisplay": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "createdBy": { "type": "string", "nullable": true } }, "additionalProperties": false, "description": "Represents an event row for data table display with pagination support." }, "EventTableRowPagedResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/EventTableRow" }, "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32", "nullable": true }, "continuationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ExactMatchFilter": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "value": { "type": "object", "nullable": true } }, "additionalProperties": false }, "GenderType": { "enum": [ "M", "F", "NonBinary", "PreferNotToSay", "Other" ], "type": "string", "additionalProperties": false, "description": "Represents a gender classification used for demographic or identification purposes." }, "IdNamePair": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "minLength": 1, "type": "string" }, "name": { "minLength": 1, "type": "string" } }, "additionalProperties": false }, "IdNameValue": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "minLength": 1, "type": "string" }, "name": { "minLength": 1, "type": "string" }, "value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LeadContact": { "type": "object", "properties": { "firstName": { "type": "string", "description": "Gets or sets the first name of the lead.", "nullable": true }, "lastName": { "type": "string", "description": "Gets or sets the last name (surname) of the lead.", "nullable": true }, "streetAddress": { "$ref": "#/components/schemas/StreetAddress" }, "phone": { "$ref": "#/components/schemas/Phone" }, "email": { "type": "string", "description": "Gets or sets the email address of the lead.", "nullable": true } }, "additionalProperties": false, "description": "Represents the primary contact details for a lead, including name, address, phone, and email." }, "LeadMetadata": { "required": [ "trustedFormUrl" ], "type": "object", "properties": { "utmSource": { "type": "string", "description": "The source of the lead traffic (e.g., \"google\", \"facebook\").", "nullable": true }, "utmMedium": { "type": "string", "description": "The medium used to acquire the lead (e.g., \"cpc\", \"email\").", "nullable": true }, "utmCampaign": { "type": "string", "description": "The UTM campaign name used for marketing attribution (e.g., \"fall-promo\").", "nullable": true }, "referrer": { "type": "string", "description": "The full referring URL or page that originated the lead.", "nullable": true }, "landingPage": { "type": "string", "description": "The landing page or form endpoint used to submit the lead.", "nullable": true }, "subId": { "type": "string", "description": "A sub-source identifier, often representing a placement or internal variant. May be truncated or character-normalized.", "nullable": true }, "pubId": { "type": "string", "description": "A publisher ID representing the partner or platform that supplied the lead.", "nullable": true }, "ipAddress": { "type": "string", "description": "The IP address of the user who submitted the lead.", "nullable": true }, "userAgent": { "type": "string", "description": "The user agent string from the browser or device used during lead submission.", "nullable": true }, "externalId": { "type": "string", "description": "Identifier of the lead in an external or third-party system.", "nullable": true }, "createdAt": { "type": "string", "description": "The UTC timestamp when the lead was generated.", "format": "date-time", "nullable": true }, "price": { "type": "number", "description": "The monetary value or payout assigned to this lead.", "format": "double", "nullable": true }, "trustedFormUrl": { "minLength": 1, "type": "string", "description": "A URL pointing to the ActiveProspect TrustedForm certificate. Required." }, "userId": { "type": "string", "description": "The user that owns this lead", "nullable": true } }, "additionalProperties": false, "description": "Metadata related to the origin, context, and attribution of a submitted lead." }, "LeadProfile": { "type": "object", "properties": { "gender": { "$ref": "#/components/schemas/GenderType" }, "height": { "type": "integer", "description": "The lead prospect's height in inches", "format": "int32", "nullable": true }, "weight": { "type": "integer", "description": "The lead prospect's weight in pounds", "format": "int32", "nullable": true }, "birthDate": { "type": "string", "description": "The lead prospect's birth date", "format": "date", "nullable": true }, "maritalStatus": { "$ref": "#/components/schemas/MaritalStatusType" }, "income": { "type": "integer", "description": "The lead prospect's income in dollars", "format": "int32", "nullable": true }, "isHomeowner": { "type": "boolean", "description": "true if the lead prospect is a homeowner", "nullable": true }, "monthsAtResidence": { "type": "integer", "description": "How many months has the lead prospect lived at their current residence?", "format": "int32", "nullable": true }, "creditScore": { "type": "integer", "description": "The lead prospect's credit rating", "format": "int32", "nullable": true }, "hasBankruptcy": { "type": "boolean", "description": "true if the lead prospect experienced bankruptcy in the last 7 years", "nullable": true }, "employmentType": { "$ref": "#/components/schemas/EmploymentType" }, "numberOfDependents": { "type": "integer", "description": "The lead prospect's number of dependents", "format": "int32", "nullable": true }, "hasMedicalCondition": { "type": "boolean", "description": "true if the lead has any pre-existing medical conditions", "nullable": true } }, "additionalProperties": false, "description": "Represents a lead prospect's profile, containing demographic and financial information." }, "LeadRequest": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "metadata": { "$ref": "#/components/schemas/LeadMetadata" }, "contact": { "$ref": "#/components/schemas/LeadContact" }, "customer": { "$ref": "#/components/schemas/LeadProfile" } }, "additionalProperties": false }, "LeadResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "metadata": { "$ref": "#/components/schemas/LeadMetadata" }, "contact": { "$ref": "#/components/schemas/LeadContact" }, "customer": { "$ref": "#/components/schemas/LeadProfile" } }, "additionalProperties": false }, "LeadTableRow": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the lead.", "nullable": true }, "firstName": { "type": "string", "description": "The first name of the lead's contact. This column is orderable and searchable.", "nullable": true }, "lastName": { "type": "string", "description": "The last name of the lead's contact. This column is orderable and searchable.", "nullable": true }, "phone": { "type": "string", "description": "The phone number of the lead's contact. This column is orderable and searchable.", "nullable": true }, "email": { "type": "string", "description": "The email address of the lead's contact. This column is orderable and searchable.", "nullable": true }, "createdAtDisplay": { "type": "string", "description": "The creation date of the lead record. This column is shown as-is in the table.", "nullable": true }, "businessName": { "type": "string", "description": "The name of the business associated with this lead. This column is orderable and searchable.", "nullable": true }, "sourceName": { "type": "string", "description": "The name of the source associated with this lead. This column is orderable and searchable.", "nullable": true } }, "additionalProperties": false, "description": "Represents a row of lead data used in a data table, with mapped fields from the contact and lead models." }, "LeadTableRowPagedResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/LeadTableRow" }, "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32", "nullable": true }, "continuationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LineType": { "enum": [ "Wireline", "Wireless", "VoWiFi", "VoIP", "PrePaidWireless", "Unknown" ], "type": "string", "additionalProperties": false }, "MaritalStatusType": { "enum": [ "Married", "Single", "Widow", "Separated", "Divorced" ], "type": "string", "additionalProperties": false }, "NotificationPriority": { "enum": [ "Low", "Medium", "High", "Critical" ], "type": "string", "additionalProperties": false }, "NotificationTableRow": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "name": { "type": "string", "nullable": true }, "type": { "$ref": "#/components/schemas/NotificationType" }, "priority": { "$ref": "#/components/schemas/NotificationPriority" }, "message": { "type": "string", "nullable": true }, "isRead": { "type": "boolean" }, "createdAtDisplay": { "type": "string", "nullable": true }, "readAtDisplay": { "type": "string", "nullable": true }, "actionUrl": { "type": "string", "nullable": true }, "actionButtonText": { "type": "string", "nullable": true } }, "additionalProperties": false }, "NotificationTableRowPagedResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationTableRow" }, "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32", "nullable": true }, "continuationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "NotificationType": { "enum": [ "General", "Lead", "Call", "Sms", "Billing", "System", "Success", "Warning", "Error", "Info", "Announcement" ], "type": "string", "additionalProperties": false }, "OrderByOption": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "direction": { "$ref": "#/components/schemas/SortDirection" } }, "additionalProperties": false }, "Phone": { "type": "object", "properties": { "number": { "type": "string", "description": "The lead's phone number in required format: +1 followed by 10 digits (e.g. +11234567890)", "nullable": true }, "lookup": { "$ref": "#/components/schemas/PhoneLookup" } }, "additionalProperties": false, "description": "Represents a phone number associated with an entity, including its type and additional information." }, "PhoneLookup": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "number": { "type": "string", "description": "The phone number that was looked up", "nullable": true }, "isValid": { "type": "boolean", "description": "Whether the phone number is valid" }, "lineType": { "$ref": "#/components/schemas/LineType" }, "carrierType": { "$ref": "#/components/schemas/CarrierType" }, "location": { "$ref": "#/components/schemas/PhoneNumberLocation" } }, "additionalProperties": false, "description": "Represents phone information retrieved from a phone number lookup" }, "PhoneNumberLocation": { "type": "object", "properties": { "location": { "type": "string", "description": "Typically maps to city", "nullable": true }, "state": { "type": "string", "nullable": true }, "countryCode": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ProblemDetails": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true }, "detail": { "type": "string", "nullable": true }, "instance": { "type": "string", "nullable": true } }, "additionalProperties": { } }, "RangeFilter": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "greaterThan": { "type": "object", "nullable": true }, "greaterThanOrEqual": { "type": "object", "nullable": true }, "lessThan": { "type": "object", "nullable": true }, "lessThanOrEqual": { "type": "object", "nullable": true } }, "additionalProperties": false }, "RequestDataOptions": { "type": "object", "properties": { "pageSize": { "type": "integer", "format": "int32" }, "continuationToken": { "type": "string", "nullable": true }, "orderBy": { "type": "array", "items": { "$ref": "#/components/schemas/OrderByOption" }, "nullable": true }, "includeCount": { "type": "boolean", "nullable": true }, "search": { "type": "string", "nullable": true }, "searchFields": { "type": "array", "items": { "type": "string" }, "nullable": true }, "filters": { "type": "array", "items": { "$ref": "#/components/schemas/ExactMatchFilter" }, "nullable": true }, "rangeFilters": { "type": "array", "items": { "$ref": "#/components/schemas/RangeFilter" }, "nullable": true } }, "additionalProperties": false }, "SortDirection": { "enum": [ "Asc", "Desc" ], "type": "string", "additionalProperties": false }, "SourceRequest": { "required": [ "name" ], "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "maxLength": 255, "minLength": 0, "type": "string" }, "description": { "type": "string", "nullable": true }, "enabled": { "type": "boolean" }, "apiKey": { "type": "string", "nullable": true }, "businessId": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SourceResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "name": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "enabled": { "type": "boolean" }, "apiKey": { "type": "string", "nullable": true }, "user": { "$ref": "#/components/schemas/IdNamePair" }, "business": { "$ref": "#/components/schemas/IdNamePair" } }, "additionalProperties": false }, "SourceTableRow": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the source.", "nullable": true }, "name": { "type": "string", "description": "The name of the source.", "nullable": true }, "description": { "type": "string", "description": "The description of the source.", "nullable": true }, "apiKey": { "type": "string", "description": "The API key of the source. This column is orderable and searchable.", "nullable": true }, "createdAtDisplay": { "type": "string", "description": "The creation date of the source record. This column is shown as-is in the table.", "nullable": true }, "enabled": { "type": "boolean", "description": "The status of the source (enabled/disabled). This column is orderable and searchable." }, "user": { "$ref": "#/components/schemas/IdNamePair" }, "business": { "$ref": "#/components/schemas/IdNamePair" }, "businessId": { "type": "string", "description": "The business ID associated with this source.", "nullable": true } }, "additionalProperties": false, "description": "Represents a row of source data used in a data table, with mapped fields from the source model." }, "SourceTableRowPagedResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/SourceTableRow" }, "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32", "nullable": true }, "continuationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "StreetAddress": { "type": "object", "properties": { "line1": { "type": "string", "nullable": true }, "line2": { "type": "string", "nullable": true }, "city": { "type": "string", "nullable": true }, "state": { "type": "string", "nullable": true }, "province": { "type": "string", "nullable": true }, "region": { "type": "string", "nullable": true }, "postalCode": { "type": "string", "nullable": true }, "country": { "type": "string", "nullable": true }, "additionalInfo": { "type": "string", "nullable": true } }, "additionalProperties": false }, "StripePaymentMethodResponse": { "required": [ "brand", "id", "last4" ], "type": "object", "properties": { "id": { "type": "string", "description": "The Stripe PaymentMethod ID", "nullable": true }, "brand": { "type": "string", "description": "The brand of the card (e.g., Visa, MasterCard)", "nullable": true }, "last4": { "type": "string", "description": "The last 4 digits of the card number", "nullable": true }, "expMonth": { "type": "integer", "description": "The expiration month of the card", "format": "int32" }, "expYear": { "type": "integer", "description": "The expiration year of the card", "format": "int32" }, "isDefault": { "type": "boolean", "description": "Whether this payment method is set as the default" }, "createdAt": { "type": "string", "description": "When the payment method was created (optional, if available)", "format": "date-time", "nullable": true } }, "additionalProperties": false, "description": "Represents a saved payment method (e.g., card) for user display" }, "SubscriptionStatus": { "enum": [ "Pending", "Active", "Overdue", "Canceled" ], "type": "string", "additionalProperties": false }, "TransactionResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "accountId": { "type": "string", "description": "Account ID (e.g. UserId)", "nullable": true }, "leadId": { "type": "string", "nullable": true }, "amount": { "type": "number", "format": "double" }, "netAmount": { "type": "number", "format": "double" }, "gatewayFeeAmount": { "type": "number", "format": "double", "nullable": true }, "gatewayStatus": { "type": "string", "nullable": true }, "gatewayId": { "type": "string", "description": "Payment gateway provided id (e.g. Stripe Payment Intent ID)", "nullable": true }, "platformFeeAmount": { "type": "number", "format": "double", "nullable": true }, "notes": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "paymentMethodDisplay": { "type": "string", "nullable": true }, "transactionType": { "$ref": "#/components/schemas/TransactionType" }, "transactionStatus": { "$ref": "#/components/schemas/TransactionStatus" }, "correlationId": { "type": "string", "description": "Id to correlate related records (e.g. LeadId)", "nullable": true }, "createdBy": { "type": "string", "description": "User ID that created the record", "nullable": true }, "modifiedBy": { "type": "string", "description": "User ID that modified the record", "nullable": true } }, "additionalProperties": false }, "TransactionStatus": { "enum": [ "Pending", "Confirmed", "Failed" ], "type": "string", "additionalProperties": false }, "TransactionTableRow": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the transaction.", "nullable": true }, "accountId": { "type": "string", "description": "The account ID associated with the transaction.", "nullable": true }, "leadId": { "type": "string", "description": "The lead ID associated with the transaction.", "nullable": true }, "amount": { "type": "number", "description": "The transaction amount.", "format": "double" }, "netAmount": { "type": "number", "description": "The net amount after fees.", "format": "double" }, "transactionType": { "$ref": "#/components/schemas/TransactionType" }, "transactionStatus": { "$ref": "#/components/schemas/TransactionStatus" }, "paymentMethodDisplay": { "type": "string", "description": "The payment method display.", "nullable": true }, "description": { "type": "string", "description": "The transaction description.", "nullable": true }, "createdAtDisplay": { "type": "string", "description": "The creation date of the transaction record.", "nullable": true }, "createdBy": { "type": "string", "description": "The user who created the transaction.", "nullable": true } }, "additionalProperties": false, "description": "Represents a row of transaction data used in a data table." }, "TransactionTableRowPagedResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionTableRow" }, "nullable": true }, "pageSize": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32", "nullable": true }, "continuationToken": { "type": "string", "nullable": true } }, "additionalProperties": false }, "TransactionType": { "enum": [ "Debit", "Adjustment", "Deposit" ], "type": "string", "additionalProperties": false }, "TrustedFormCertificate": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "url": { "type": "string", "nullable": true }, "source": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "UserCompliance": { "type": "object", "properties": { "acceptedTerms": { "type": "boolean" }, "acceptedToSubscription": { "type": "boolean" }, "acceptedSms": { "type": "boolean" }, "acceptedBaa": { "type": "boolean" }, "acceptedEmail": { "type": "boolean" }, "trustedFormCertificates": { "type": "array", "items": { "$ref": "#/components/schemas/TrustedFormCertificate" }, "nullable": true } }, "additionalProperties": false }, "UserIdentity": { "type": "object", "properties": { "issuer": { "type": "string", "nullable": true }, "issuerAssignedId": { "type": "string", "nullable": true }, "signInType": { "type": "string", "nullable": true } }, "additionalProperties": false }, "UserRequest": { "required": [ "name" ], "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "maxLength": 255, "minLength": 0, "type": "string" }, "email": { "type": "string", "nullable": true }, "firstName": { "type": "string", "nullable": true }, "lastName": { "type": "string", "nullable": true }, "phone": { "type": "string", "nullable": true }, "billingPlan": { "$ref": "#/components/schemas/BillingPlan" }, "subscriptionStatus": { "$ref": "#/components/schemas/SubscriptionStatus" }, "autoRefillEnabled": { "type": "boolean" }, "autoRefillAmount": { "type": "number", "format": "double", "nullable": true }, "autoRefillTrigger": { "type": "number", "format": "double", "nullable": true }, "business": { "$ref": "#/components/schemas/IdNamePair" }, "compliance": { "$ref": "#/components/schemas/UserCompliance" } }, "additionalProperties": false }, "UserResponse": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "modifiedAt": { "type": "string", "format": "date-time", "nullable": true }, "name": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "firstName": { "type": "string", "nullable": true }, "lastName": { "type": "string", "nullable": true }, "phone": { "type": "string", "nullable": true }, "billingPlan": { "$ref": "#/components/schemas/BillingPlan" }, "subscriptionStatus": { "$ref": "#/components/schemas/SubscriptionStatus" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/UserRoles" }, "nullable": true }, "identities": { "type": "array", "items": { "$ref": "#/components/schemas/UserIdentity" }, "nullable": true }, "stripeInfo": { "$ref": "#/components/schemas/UserStripeInfo" }, "accountBalance": { "type": "number", "format": "double" }, "autoRefillEnabled": { "type": "boolean" }, "autoRefillAmount": { "type": "number", "format": "double", "nullable": true }, "autoRefillTrigger": { "type": "number", "format": "double", "nullable": true }, "business": { "$ref": "#/components/schemas/IdNamePair" }, "compliance": { "$ref": "#/components/schemas/UserCompliance" } }, "additionalProperties": false }, "UserRoles": { "enum": [ "Initialized", "Agent", "Admin", "SuperUser" ], "type": "string", "additionalProperties": false, "description": "A user can have multiple role types. " }, "UserStripeInfo": { "type": "object", "properties": { "customerId": { "type": "string", "nullable": true }, "defaultPaymentMethodId": { "type": "string", "description": "Default payment method (usually card) attached to the customer, for billing later.", "nullable": true }, "subscriptionIds": { "type": "array", "items": { "type": "string" }, "nullable": true }, "cancelAt": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false } }, "securitySchemes": { "Bearer": { "type": "apiKey", "description": "JWT Authorization header using the Bearer scheme. (i.e. \"Bearer 1234abcdef\")", "name": "Authorization", "in": "header" } } }, "security": [ { "Bearer": [ ] } ] }