# Lobbie Partner API # Partner API Overview ## Authentication The Partner API uses **OAuth 2.0 with AWS Cognito** for secure machine-to-machine (M2M) authentication. ### Prerequisites Before making API requests, you must complete the partner onboarding process: 1. **Partner Registration**: Lobbie creates a partner integrator record with your unique `client_id` 2. **Cognito Credentials**: Lobbie provides OAuth 2.0 client credentials (client ID and client secret) 3. **Account Grants**: Lobbie grants your integration access to specific accounts ### Obtaining an Access Token Request an access token using the OAuth 2.0 client credentials by sending an HTTPS form POST: ``` POST https://partner-api.lobbie.com/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials& client_id=& client_secret= ``` The response contains a JWT access token: ```json { "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600 } ``` ### Making Authenticated Requests Include the access token in the `Authorization` header of every API request: ``` Authorization: Bearer ``` ### Token Management - Access tokens expire after the duration specified in `expires_in` (default: 60 minutes) - Request a new token before the current one expires - Store credentials securely—they grant access to protected health information (PHI) - If credentials are compromised, contact Lobbie support immediately to revoke and regenerate ### Authorization Your partner integration must have an active grant to access each account. The API validates: 1. The JWT token is valid and not expired 2. Your `client_id` corresponds to an active partner integrator 3. Your integration has an active grant to the requested account 4. The requested location belongs to the specified account ## Common Errors | Status | Error | Description | | ------ | ------------ | --------------------------------------------------------------------- | | 401 | Unauthorized | Invalid, expired, or missing access token | | 403 | Forbidden | Integration does not have access to the requested account or location | | 404 | Not Found | Resource not found or does not belong to the authorized account | ## HIPAA & Compliance - All patient data is Protected Health Information (PHI) - Encrypt data at rest and in transit - Maintain audit logs of all data access - Sign Business Associate Agreement (BAA) before production access - Follow data retention policies per agreement --- # Terminology This glossary defines domain-specific terms used throughout the Lobbie Partner API. --- ## Core Entities ### Account A healthcare practice or organization using Lobbie. Each account contains practice-wide settings and configurations, and can have multiple locations. All API access is scoped to a specific account via OAuth tokens. ### Location A physical practice site, clinic, or virtual care location within an account. Locations have their own addresses, staff assignments, schedules, and operational settings. Appointments, forms, and many operations are location-scoped. Each location has timezone information critical for accurate scheduling. Locations may have an optional `storeId` that partners can use to correlate Lobbie locations with their own systems. ### Patient An individual receiving healthcare services from a specific account. Contains demographic information (name, date of birth) and contact details (email, phone). Serves as the central entity linking appointments, forms, invoices, and clinical data. Subject to HIPAA privacy requirements. --- ## Scheduling ### Appointment A scheduled visit between a patient and practitioner at a specific location and time. Appointments track the complete visit lifecycle from initial scheduling through check-in, the visit itself, and completion or cancellation. Each appointment links to an appointment type, patient, practitioner, and location. ### Appointment Type A template defining a schedulable service, including duration, telehealth settings, display color, and patient-facing description/instructions. Examples: "New Patient Consultation" (30 min), "Follow-up Visit" (15 min), "Telehealth Checkup" (20 min). Appointment types determine what services patients can book and how long they're scheduled. ### Practitioner A staff member designated as a clinical provider who can see patients and be scheduled for appointments. Practitioners have credentials (MD, DO, NP, PA, RN), NPI numbers, specialties, and license information. All practitioners are staff members, but not all staff are practitioners. ### Self-Scheduling Patient-initiated appointment booking through embeddable widgets or API integration. Self-scheduling respects practice availability rules, appointment type configurations, and booking windows. Patients can browse available times and complete bookings without staff intervention. ### Self-Scheduling Attempt A record of a patient's journey through the self-scheduling process, from initiation to completion or abandonment. Captures step-by-step progress for conversion analysis, identifying drop-off points, and triggering follow-up workflows for incomplete attempts. --- ## Staff & Access ### Staff Member Any team member with system access, including administrative staff, clinical support, and practitioners. Staff have role assignments determining their permissions and location access. ### Role Group A permission set defining capabilities and access levels for staff members. Role groups control what actions staff can perform within the system, from standard user access to full administrative privileges. Staff members can have multiple role groups assigned, combining permissions as needed. --- ## Forms & Documentation ### Form Template A reusable form design defining structure, fields, validation rules, and conditional logic. Templates are created once and used to generate form instances for patients. Form templates support versioning—when a template is modified, a new version is created while preserving previous versions for historical form submissions. Examples: "Patient Intake Form", "HIPAA Consent", "Medical History Questionnaire". ### Form Group A collection of one or more form instances assigned to a patient for completion. Form groups track overall completion status and can include multiple related forms. A form group is considered complete when all forms within it have been submitted, and can be archived when no longer needed. ### Form An individual form instance within a form group, based on a form template version. Each form tracks its own completion status and contains the patient's responses. ### Form Element A single field or component within a form template that captures patient input or displays content. Element types include: text inputs, text areas, dropdowns, checkboxes, radio buttons, date pickers, signatures, initials, file uploads, phone numbers, email addresses, addresses, and specialized types like payment fields and body diagrams. Elements can be configured as required or optional, and can have visibility rules controlling who can view or edit them (patient only, staff only, or both). ### Form Answer A patient's response to a specific form element. Answers are stored per element and can be text, selections, dates, signatures, or file uploads depending on the element type. ### Form Template Group A predefined collection of form templates commonly assigned together. Simplifies assigning multiple related forms in a single operation (e.g., "New Patient Packet" containing intake, consent, and history forms). --- ## Billing & Payments ### Invoice An itemized billing statement for a patient detailing charges for services, products, taxes, and fees. Invoices progress through a lifecycle from creation to payment or cancellation. Invoices can be linked to appointments or created independently. ### Invoice Line Item A single charge entry within an invoice. Line items specify quantity, unit price, and description, and can represent services, products, adjustments, or taxes. May reference billing codes and associated care resources. ### Payment Request A trackable record of a payment’s lifecycle, from initiation to final settlement. Each request tracks its status from creation through payment or expiration, whether triggered as a remote request sent to a patient (via email or SMS) or entered directly by staff for immediate processing. ### Recurring Payment An automated payment plan with scheduled charges at defined intervals. Used for payment plans, memberships, and subscription services. Configured with a frequency (weekly, monthly, etc.), amount, linked payment method, and optional end date. --- ## Labs & Clinical ### Lab A laboratory order containing one or more test panels with results. Labs track progress from order placement through result delivery. Labs can be in-house or from external vendors and link to patients and optionally appointments. ### Test Panel A grouping of related lab tests within a lab order. Examples: "Comprehensive Metabolic Panel", "Complete Blood Count", "Lipid Panel". Each panel contains multiple test components. ### Test Component An individual lab measurement within a test panel. Contains the test name, result value, unit of measurement, reference range, and an indicator of whether the result is normal or abnormal. ### Health Profile Structured patient health information including medical history, allergies, medications, and clinical data collected through intake forms and clinical encounters. --- ## Patient Management ### Category A service category that can function as either a CRM-tracked sales pipeline or a simple organizational tag. When CRM-tracked, categories enable full pipeline tracking through status stages with dashboard visibility. When not CRM-tracked, categories function as simple groupings for billing, inventory, or reporting. Examples of CRM categories: "Men's Health - Testosterone", "Weight Loss - Semaglutide". Examples of simple categories: "Lab Supplies", "Office Visits". ### Patient Category A patient's enrollment in a specific service category with CRM status tracking. Represents the link between a patient and a category, tracking their progress through the associated CRM pipeline. Appears as an "Opportunity" in CRM dashboards. Tracks status transitions with a complete audit trail. ### CRM Status Group A reusable CRM workflow pipeline (sales/marketing funnel) that defines the customer journey stages. Think of it as the sales funnel template—the workflow (HOW you sell) is separated from the product (WHAT you sell). Multiple categories often share the same sales process. Examples: "Digital Marketing Funnel" with stages like Cold Lead → Engaged → Sales Qualified → Closed Won; "Patient Care Journey" with stages like Intake → Insurance Verified → In Treatment → Complete. ### CRM Status An individual stage within a CRM status group representing where a patient is in a workflow. Status progression is tracked through transitions, providing a complete audit trail. Examples: "Cold Lead", "Sales Qualified", "Proposal Sent", "Closed Won", "Closed Lost". --- ## Communications ### Notification A system-generated message sent to a patient via email or SMS. Notifications are sent for various purposes including appointment reminders, form assignments, payment requests, and account recovery. Each notification tracks its delivery status. ### Notification Group Configuration defining how and when patients receive specific types of communications, customizable per location or appointment type. --- ## Identity & Security ### Identity Proof A verification session for authenticating patient identity through email and/or SMS code verification. Used for patient portal authentication, self-scheduling verification, and secure access to patient data. Each session generates a secure token and tracks which contact methods have been verified. ### Verification Method The channel(s) required to prove identity, which can be email only, SMS only, or both. The verification method determines what must be verified before the identity proof is considered complete. Version: 2.0 ## Servers Production ``` https://api-prod.lobbie.com/lobbie/api/partner/v2 ``` ## Security ### PartnerOAuth OAuth 2.0 access token from integration webhook Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [Lobbie Partner API](https://lobbie-partner.redocly.app/_bundle/openapi.yaml) ## Appointment Types Appointment Type configuration endpoints ### List appointment types - [GET /partner/v2/account/{accountId}/appointment/type](https://lobbie-partner.redocly.app/openapi/appointment-types/listappointmenttypes.md): Retrieve a paginated list of active appointment types for the account. Supports filtering by name/description and keyset pagination. ### Get appointment type by ID - [GET /partner/v2/account/{accountId}/appointment/type/{appointmentTypeId}](https://lobbie-partner.redocly.app/openapi/appointment-types/getappointmenttype.md): Retrieve details for a specific appointment type. ## Appointments Appointment scheduling and management endpoints ### List appointments - [GET /partner/v2/account/{accountId}/location/{locationId}/appointment](https://lobbie-partner.redocly.app/openapi/appointments/listappointments.md): Retrieve a paginated list of appointments for the account. Supports filtering by location, practitioner, patient, date range, and status. Results are sorted by appointment start time by default. ### Create appointment - [POST /partner/v2/account/{accountId}/location/{locationId}/appointment](https://lobbie-partner.redocly.app/openapi/appointments/createappointment.md): Schedule a new appointment for a patient. Requires patient ID, practitioner ID, appointment type ID, and the desired start time. The system will validate availability before confirming the appointment. ### Get appointment by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/appointment/{appointmentId}](https://lobbie-partner.redocly.app/openapi/appointments/getappointment.md): Retrieve detailed information about a specific appointment including patient details, practitioner, location, and appointment type information. ### Update appointment - [PUT /partner/v2/account/{accountId}/location/{locationId}/appointment/{appointmentId}](https://lobbie-partner.redocly.app/openapi/appointments/updateappointment.md): Update an existing appointment. Can be used to reschedule (change time/practitioner) or update appointment details. Only provided fields will be updated. ## CRM Status Groups CRM status retrieval endpoints ### List CRM status groups - [GET /partner/v2/account/{accountId}/crm-status-group](https://lobbie-partner.redocly.app/openapi/crm-status-groups/listcrmstatusgroups.md): Retrieve the list of CRM status groups defined for the account. ### Get CRM status group by ID - [GET /partner/v2/account/{accountId}/crm-status-group/{groupId}](https://lobbie-partner.redocly.app/openapi/crm-status-groups/getcrmstatusgroup.md): Retrieve detailed information about a specific CRM status group. ### List CRM statuses in group - [GET /partner/v2/account/{accountId}/crm-status-group/{groupId}/status](https://lobbie-partner.redocly.app/openapi/crm-status-groups/listcrmstatuses.md): Retrieve all CRM statuses within the specified status group. ### Get CRM status by ID - [GET /partner/v2/account/{accountId}/crm-status-group/{groupId}/status/{statusId}](https://lobbie-partner.redocly.app/openapi/crm-status-groups/getcrmstatus.md): Retrieve detailed information about a specific CRM status. ## Categories Patient category definition retrieval endpoints ### List categories - [GET /partner/v2/account/{accountId}/category](https://lobbie-partner.redocly.app/openapi/categories/listcategories.md): Retrieve the list of patient categories defined for the account. ### Get category by ID - [GET /partner/v2/account/{accountId}/category/{categoryId}](https://lobbie-partner.redocly.app/openapi/categories/getcategory.md): Retrieve detailed information about a specific category. ## Form Template Groups Form template group retrieval endpoints ### List form template groups - [GET /partner/v2/account/{accountId}/location/{locationId}/form/group](https://lobbie-partner.redocly.app/openapi/form-template-groups/listformtemplategroups.md): Retrieve a list of form template groups available for the location. Form template groups are pre-configured collections of forms that can be assigned together. ### Get form template group by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/form/group/{groupId}](https://lobbie-partner.redocly.app/openapi/form-template-groups/getformtemplategroup.md): Retrieve detailed information about a form template group including the list of form templates it contains. ## Form Templates Form template and template group reference data ### List form templates - [GET /partner/v2/account/{accountId}/location/{locationId}/form/template](https://lobbie-partner.redocly.app/openapi/form-templates/listformtemplates.md): Retrieve a paginated list of active form templates for the account. Templates define the structure of forms that can be assigned to patients. Supports filtering by appointment type and staff-only visibility. ### List form template groups - [GET /partner/v2/account/{accountId}/location/{locationId}/form/template/groups](https://lobbie-partner.redocly.app/openapi/form-templates/listformtemplategroups_1.md): Retrieve a list of form template groups for the account. Template groups are pre-configured bundles of forms, often used for specific workflows (e.g., 'New Patient Intake', 'Annual Physical'). ### Get form template group by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/form/template/groups/{groupId}](https://lobbie-partner.redocly.app/openapi/form-templates/getformtemplategroup_1.md): Retrieve detailed information about a form template group including the list of templates it contains. ### Get form template by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/form/template/{formTemplateId}](https://lobbie-partner.redocly.app/openapi/form-templates/getformtemplate.md): Retrieve detailed information about a form template including all form elements/fields. Use this to understand the structure of a form for integration purposes. ### Get form template attributes - [GET /partner/v2/account/{accountId}/location/{locationId}/form/template/{formTemplateId}/attributes](https://lobbie-partner.redocly.app/openapi/form-templates/getformtemplateattributes.md): Retrieve the list of mapped attributes for a template. Attributes are named mappings for form fields (e.g., 'patient_first_name') that can be used for pre-filling and data extraction. ### Get form template elements - [GET /partner/v2/account/{accountId}/location/{locationId}/form/template/{formTemplateId}/elements](https://lobbie-partner.redocly.app/openapi/form-templates/getformtemplateelements.md): Retrieve the list of form elements (fields) for a template. Each element represents an input field, with its type, label, and optional attribute mapping. ## Forms Form packet management and submission endpoints ### List form packets - [GET /partner/v2/account/{accountId}/location/{locationId}/form](https://lobbie-partner.redocly.app/openapi/forms/listformpackets.md): Retrieve a paginated list of form packets for the account. Supports filtering by patient, location, status, and date range. Form packets contain one or more forms assigned to a patient. ### Create form packet - [POST /partner/v2/account/{accountId}/location/{locationId}/form](https://lobbie-partner.redocly.app/openapi/forms/createformpacket.md): Create a new form packet for a patient. Specify the patient, location, and either a list of form template IDs or a form template group ID. Optionally pre-fill form fields with known data and set a due date. ### Get form packet by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/form/{formPacketId}](https://lobbie-partner.redocly.app/openapi/forms/getformpacket.md): Retrieve detailed information about a form packet including all forms, their completion status, and submitted answers. Use this to check completion progress and retrieve patient responses. ### Update form packet - [PUT /partner/v2/account/{accountId}/location/{locationId}/form/{formPacketId}](https://lobbie-partner.redocly.app/openapi/forms/updateformpacket.md): Update a form packet. Can be used to change the due date, add additional forms, or update the status. ### Archive form packet - [PUT /partner/v2/account/{accountId}/location/{locationId}/form/{formPacketId}/archive](https://lobbie-partner.redocly.app/openapi/forms/archiveformpacket.md): Archive a form packet. Archived packets are hidden from default views but can still be retrieved by ID or by filtering for archived packets. ### Get form packet PDF - [GET /partner/v2/account/{accountId}/location/{locationId}/form/{formPacketId}/pdf](https://lobbie-partner.redocly.app/openapi/forms/getformpacketpdf.md): Generate or retrieve a PDF of the completed form packet. Returns a signed URL to download the PDF. The URL is valid for 15 minutes. ### Pre-fill form fields - [POST /partner/v2/account/{accountId}/location/{locationId}/form/{formPacketId}/prefill](https://lobbie-partner.redocly.app/openapi/forms/prefillformfields.md): Pre-populate form fields with known patient data. Provide a map of field attribute names to values. Fields that don't exist or are already answered will be skipped. ### Get form packet URL - [GET /partner/v2/account/{accountId}/location/{locationId}/form/{formPacketId}/url](https://lobbie-partner.redocly.app/openapi/forms/getformpacketurl.md): Get the patient-facing URL for completing this form packet. This URL can be shared with the patient via your own communication channels. ## Identity Proof Account-scoped identity verification endpoints ### Create identity proof - [POST /partner/v2/account/{accountId}/identity-proof](https://lobbie-partner.redocly.app/openapi/identity-proof/createidentityproof.md): Create a new identity proof session for person verification within this account. Returns an ID and secure token for subsequent requests. ### Get identity proof status - [GET /partner/v2/account/{accountId}/identity-proof/{id}](https://lobbie-partner.redocly.app/openapi/identity-proof/getidentityproofstatus.md): Returns the current status of an identity proof session, including which verification methods have been verified and which are still pending. ### Get matched patient - [GET /partner/v2/account/{accountId}/identity-proof/{id}/patient](https://lobbie-partner.redocly.app/openapi/identity-proof/getpatient_1.md): Find the matched patient for a verified identity proof. Returns the patient ID if a unique match is found. Returns 404 if no match found, or 422 if multiple matches found (duplicate email/phone in account). All required communication methods must be verified before calling this endpoint. ### Send verification code - [POST /partner/v2/account/{accountId}/identity-proof/{id}/send](https://lobbie-partner.redocly.app/openapi/identity-proof/sendverification.md): Send verification code to email or phone. Does not perform patient matching - only proves contact ownership. ### Verify code - [POST /partner/v2/account/{accountId}/identity-proof/{id}/verify](https://lobbie-partner.redocly.app/openapi/identity-proof/verifycode.md): Verify the code sent via email or SMS. Returns verification status and the verified contact information (email/phone). ## Invoices Invoice line item retrieval endpoints ### List invoices - [GET /partner/v2/account/{accountId}/location/{locationId}/invoice](https://lobbie-partner.redocly.app/openapi/invoices/listinvoices.md): Retrieve a paginated list of invoices for the location. Supports filtering by patient, status, and date range. ### Get invoice by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/invoice/{invoiceId}](https://lobbie-partner.redocly.app/openapi/invoices/getinvoice.md): Retrieve detailed information about a specific invoice including line items and payment status. ### List invoice line items - [GET /partner/v2/account/{accountId}/location/{locationId}/invoice/{invoiceId}/line-item](https://lobbie-partner.redocly.app/openapi/invoices/listlineitems.md): Retrieve all line items for the specified invoice. ### Get line item by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/invoice/{invoiceId}/line-item/{lineItemId}](https://lobbie-partner.redocly.app/openapi/invoices/getlineitem.md): Retrieve detailed information about a specific line item. ### Get invoice PDF - [GET /partner/v2/account/{accountId}/location/{locationId}/invoice/{invoiceId}/pdf](https://lobbie-partner.redocly.app/openapi/invoices/getinvoicepdf.md): Generate or retrieve a PDF of the invoice. Returns a signed URL to download the PDF. ## Labs Lab test component retrieval endpoints ### List labs - [GET /partner/v2/account/{accountId}/location/{locationId}/lab](https://lobbie-partner.redocly.app/openapi/labs/listlabs.md): Retrieve lab orders and results for the location. Supports filtering by patient, status, and date range. ### Get lab by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/lab/{labId}](https://lobbie-partner.redocly.app/openapi/labs/getlab.md): Retrieve detailed information about a lab including all test panels and components. ### List test components for lab - [GET /partner/v2/account/{accountId}/location/{locationId}/lab/{labId}/test-component](https://lobbie-partner.redocly.app/openapi/labs/listtestcomponents.md): Retrieve all test components (results) for the specified lab. ### Get test component by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/lab/{labId}/test-component/{componentId}](https://lobbie-partner.redocly.app/openapi/labs/gettestcomponent.md): Retrieve detailed information about a specific test component. ## Locations Location endpoints for scheduling flow ### List locations - [GET /partner/v2/account/{accountId}/location](https://lobbie-partner.redocly.app/openapi/locations/listlocations.md): Retrieve a paginated list of active locations for the account. Supports filtering by name and storeId. Use storeId filter to find a location by partner's external identifier. ### Get location by ID - [GET /partner/v2/account/{accountId}/location/{locationId}](https://lobbie-partner.redocly.app/openapi/locations/getlocation.md): Retrieve location information by location ID. The location must belong to the account associated with the OAuth token. ## Notification Groups Notification group retrieval endpoints ### List notification groups - [GET /partner/v2/account/{accountId}/location/{locationId}/notification-group](https://lobbie-partner.redocly.app/openapi/notification-groups/listnotificationgroups.md): Retrieve a paginated list of notification groups for the location. Each group ties together related notifications for an appointment, form, or payment. ### Get notification group by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/notification-group/{groupId}](https://lobbie-partner.redocly.app/openapi/notification-groups/getnotificationgroup.md): Retrieve detailed information about a specific notification group. ## Notifications Notification retrieval endpoints ### List notifications - [GET /partner/v2/account/{accountId}/location/{locationId}/notification](https://lobbie-partner.redocly.app/openapi/notifications/listnotifications.md): Retrieve a paginated list of notifications for the location. Supports filtering by patient, notification group, type, status, and date range. Each notification tracks email and SMS delivery status independently. ### Get notification by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/notification/{notificationId}](https://lobbie-partner.redocly.app/openapi/notifications/getnotification.md): Retrieve detailed information about a specific notification. ## Patient Health Profile Patient allergies, medications, and problems retrieval (get by ID under account) ### Get allergy by ID - [GET /partner/v2/account/{accountId}/health-profile/allergies/{allergyId}](https://lobbie-partner.redocly.app/openapi/patient-health-profile/getallergy.md): Retrieve detailed information about a specific allergy. Scoped by account. ### Get medication by ID - [GET /partner/v2/account/{accountId}/health-profile/medications/{medicationId}](https://lobbie-partner.redocly.app/openapi/patient-health-profile/getmedication.md): Retrieve detailed information about a specific medication. Scoped by account. ### Get problem by ID - [GET /partner/v2/account/{accountId}/health-profile/problems/{problemId}](https://lobbie-partner.redocly.app/openapi/patient-health-profile/getproblem.md): Retrieve detailed information about a specific problem/diagnosis. Scoped by account. ### List patient allergies - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/allergies](https://lobbie-partner.redocly.app/openapi/patient-health-profile/listallergies.md): Retrieve all allergies for a patient including severity, reactions, and status. ### List patient medications - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/medications](https://lobbie-partner.redocly.app/openapi/patient-health-profile/listmedications.md): Retrieve all medications for a patient including dosage instructions and status. ### List patient problems/diagnoses - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/problems](https://lobbie-partner.redocly.app/openapi/patient-health-profile/listproblems.md): Retrieve all problems (diagnoses) for a patient including ICD-10 codes and status. ### List patient allergies - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/allergies](https://lobbie-partner.redocly.app/openapi/patients/listallergies.md): Retrieve all allergies for a patient including severity, reactions, and status. ### List patient medications - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/medications](https://lobbie-partner.redocly.app/openapi/patients/listmedications.md): Retrieve all medications for a patient including dosage instructions and status. ### List patient problems/diagnoses - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/problems](https://lobbie-partner.redocly.app/openapi/patients/listproblems.md): Retrieve all problems (diagnoses) for a patient including ICD-10 codes and status. ## Patients Patient category retrieval endpoints ### List patient allergies - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/allergies](https://lobbie-partner.redocly.app/openapi/patient-health-profile/listallergies.md): Retrieve all allergies for a patient including severity, reactions, and status. ### List patient medications - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/medications](https://lobbie-partner.redocly.app/openapi/patient-health-profile/listmedications.md): Retrieve all medications for a patient including dosage instructions and status. ### List patient problems/diagnoses - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/problems](https://lobbie-partner.redocly.app/openapi/patient-health-profile/listproblems.md): Retrieve all problems (diagnoses) for a patient including ICD-10 codes and status. ### List patients - [GET /partner/v2/account/{accountId}/patients](https://lobbie-partner.redocly.app/openapi/patients/listpatients.md): Retrieve a paginated list of patients for the account. Supports filtering by name/email and cursor-based pagination. ### Create a new patient - [POST /partner/v2/account/{accountId}/patients](https://lobbie-partner.redocly.app/openapi/patients/createpatient.md): Create a new patient for the account. The account must match the OAuth token context. ### Delete patient - [DELETE /partner/v2/account/{accountId}/patients/{patientId}](https://lobbie-partner.redocly.app/openapi/patients/deletepatient.md): Delete a patient from the account. This removes the patient's association with the account but may not delete the underlying global patient record. ### Get patient data - [GET /partner/v2/account/{accountId}/patients/{patientId}](https://lobbie-partner.redocly.app/openapi/patients/getpatient.md): Retrieve patient information by patient ID. The account must match the OAuth token context. ### Update patient data - [PUT /partner/v2/account/{accountId}/patients/{patientId}](https://lobbie-partner.redocly.app/openapi/patients/updatepatient.md): Update patient information by patient ID. Only provided fields will be updated. The account must match the OAuth token context. ### Get patient's current category - [GET /partner/v2/account/{accountId}/patients/{patientId}/category](https://lobbie-partner.redocly.app/openapi/patients/getpatientcategory.md): Retrieve the current category assignment for the patient. ### List patient category transitions - [GET /partner/v2/account/{accountId}/patients/{patientId}/category/transition](https://lobbie-partner.redocly.app/openapi/patients/listcategorytransitions.md): Retrieve the category transition history for the patient. Shows when and why the patient's category changed over time. ### Get category transition by ID - [GET /partner/v2/account/{accountId}/patients/{patientId}/category/transition/{transitionId}](https://lobbie-partner.redocly.app/openapi/patients/getcategorytransition.md): Retrieve detailed information about a specific category transition. ### List patient allergies - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/allergies](https://lobbie-partner.redocly.app/openapi/patients/listallergies.md): Retrieve all allergies for a patient including severity, reactions, and status. ### List patient medications - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/medications](https://lobbie-partner.redocly.app/openapi/patients/listmedications.md): Retrieve all medications for a patient including dosage instructions and status. ### List patient problems/diagnoses - [GET /partner/v2/account/{accountId}/patients/{patientId}/health-profile/problems](https://lobbie-partner.redocly.app/openapi/patients/listproblems.md): Retrieve all problems (diagnoses) for a patient including ICD-10 codes and status. ## Payment Requests Payment request retrieval endpoints ### List payment requests - [GET /partner/v2/account/{accountId}/location/{locationId}/payment-request](https://lobbie-partner.redocly.app/openapi/payment-requests/listpaymentrequests.md): Retrieve a paginated list of payment requests for the location. Supports filtering by patient, status, and date range. ### Get payment request by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/payment-request/{paymentRequestId}](https://lobbie-partner.redocly.app/openapi/payment-requests/getpaymentrequest.md): Retrieve detailed information about a specific payment request. ## Recurring Payments Recurring payment retrieval endpoints ### List recurring payments - [GET /partner/v2/account/{accountId}/location/{locationId}/recurring-payment](https://lobbie-partner.redocly.app/openapi/recurring-payments/listrecurringpayments.md): Retrieve a paginated list of recurring payment configurations for the location. ### Get recurring payment by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/recurring-payment/{recurringPaymentId}](https://lobbie-partner.redocly.app/openapi/recurring-payments/getrecurringpayment.md): Retrieve detailed information about a specific recurring payment configuration. ## Remote Care Conversion Remote care conversion funnel endpoints ### Create conversion - [POST /partner/v2/account/{accountId}/location/{locationId}/remote-care/conversion](https://lobbie-partner.redocly.app/openapi/remote-care-conversion/createconversion.md): Initialize a new remote care conversion tracking record. ### Get conversion by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/remote-care/conversion/{id}](https://lobbie-partner.redocly.app/openapi/remote-care-conversion/getconversion.md): Retrieve details of a specific remote care conversion. ### Partial update conversion - [PUT /partner/v2/account/{accountId}/location/{locationId}/remote-care/conversion/{id}](https://lobbie-partner.redocly.app/openapi/remote-care-conversion/updateconversion.md): Update patient data, selected services, or attempt links for a conversion. Only provided fields are updated. ## Remote Care Services Remote care service catalog endpoints ### List remote care services - [GET /partner/v2/account/{accountId}/location/{locationId}/remote-care/service](https://lobbie-partner.redocly.app/openapi/remote-care-services/listservices.md): Retrieve a paginated list of available remote care services for the location. ### Get remote care service by ID - [GET /partner/v2/account/{accountId}/location/{locationId}/remote-care/service/{serviceId}](https://lobbie-partner.redocly.app/openapi/remote-care-services/getservice.md): Retrieve details for a specific remote care service. ## Remote Care Settings Remote care configuration endpoints ### Get remote care settings - [GET /partner/v2/account/{accountId}/location/{locationId}/remote-care/setting](https://lobbie-partner.redocly.app/openapi/remote-care-settings/getremotecaresetting.md): Get remote care configuration for the location, including default staff and links to self-scheduling settings. ## Role Groups System-wide role group retrieval endpoints ### List role groups - [GET /partner/v2/role-group](https://lobbie-partner.redocly.app/openapi/role-groups/listrolegroups.md): Retrieve the list of available role groups. Role groups define access levels that can be assigned to staff members. Role group IDs are constant across all accounts and will not change without explicit notice, though new role groups may be added over time. ### Get role group by ID - [GET /partner/v2/role-group/{roleGroupId}](https://lobbie-partner.redocly.app/openapi/role-groups/getrolegroup.md): Retrieve information about a specific role group. ## Self-Scheduling Self-scheduling configuration and availability endpoints ### Get appointment availability - [GET /partner/v2/account/{accountId}/self-scheduling/availability](https://lobbie-partner.redocly.app/openapi/self-scheduling/getavailability.md): Returns available appointment slots for a time range. Time range must not exceed 2 months (62 days). ### Get self-scheduling setting - [GET /partner/v2/account/{accountId}/self-scheduling/setting/{selfSchedulingSettingId}](https://lobbie-partner.redocly.app/openapi/self-scheduling/getsetting.md): Retrieve self-scheduling configuration with associated practitioners, locations, appointment types, and scheduler configs. ## Self-Scheduling Attempt Account-scoped self-scheduling attempt endpoints ### Create self-scheduling attempt - [POST /partner/v2/account/{accountId}/self-scheduling/attempt](https://lobbie-partner.redocly.app/openapi/self-scheduling-attempt/createattempt.md): Initialize a new self-scheduling attempt. Validates that the setting is active and, if provided, that the identity proof matches the setting's verification requirements. ### Get self-scheduling attempt - [GET /partner/v2/account/{accountId}/self-scheduling/attempt/{attemptId}](https://lobbie-partner.redocly.app/openapi/self-scheduling-attempt/getselfschedulingattempt.md): Retrieve details of an existing self-scheduling attempt by ID. Returns attempt status including identity proof verification status, patient ID (if set), and appointment ID (if created). Returns 404 if attempt doesn't exist or doesn't belong to this account. ### Create appointment for self-scheduling attempt - [POST /partner/v2/account/{accountId}/self-scheduling/attempt/{attemptId}/appointment](https://lobbie-partner.redocly.app/openapi/self-scheduling-attempt/createappointment_1.md): Creates an appointment for the specified self-scheduling attempt. Patient must be set on the attempt before creating an appointment. Scheduler config must belong to the self-scheduling setting. ### Attach a patient to a self-scheduling attempt - [POST /partner/v2/account/{accountId}/self-scheduling/attempt/{attemptId}/patient](https://lobbie-partner.redocly.app/openapi/self-scheduling-attempt/attachpatienttoselfschedulingattempt.md): Resolves or creates a patient from the provided demographics and attaches them to the self-scheduling attempt. If the attempt has a verified identity proof, patient resolution will use it for matching. Returns 200 if an existing patient was found, 201 if a new patient was created. ## Staff & Practitioners Staff member and practitioner retrieval endpoints ### List staff members - [GET /partner/v2/account/{accountId}/staff](https://lobbie-partner.redocly.app/openapi/staff-and-practitioners/liststaff.md): Retrieve a paginated list of staff members for the account. Supports filtering by location, role, status, and practitioner status. ### Get staff member by ID - [GET /partner/v2/account/{accountId}/staff/{staffId}](https://lobbie-partner.redocly.app/openapi/staff-and-practitioners/getstaff.md): Retrieve detailed information about a specific staff member. ## Webhooks Webhook configuration and event delivery management ### List webhook endpoints - [GET /partner/v2/account/{accountId}/webhook](https://lobbie-partner.redocly.app/openapi/webhooks/listwebhookendpoints.md): Retrieve all configured webhook endpoints for the account. ### Create webhook endpoint - [POST /partner/v2/account/{accountId}/webhook](https://lobbie-partner.redocly.app/openapi/webhooks/createwebhookendpoint.md): Create a new webhook endpoint to receive event notifications. Specify the URL and the event types you want to subscribe to. A signing secret will be generated and returned - store it securely. ### List available event types - [GET /partner/v2/account/{accountId}/webhook/event-types](https://lobbie-partner.redocly.app/openapi/webhooks/listeventtypes.md): Retrieve the list of event types that can be subscribed to. ### Delete webhook endpoint - [DELETE /partner/v2/account/{accountId}/webhook/{webhookId}](https://lobbie-partner.redocly.app/openapi/webhooks/deletewebhookendpoint.md): Delete a webhook endpoint. Pending deliveries will be cancelled. ### Get webhook endpoint by ID - [GET /partner/v2/account/{accountId}/webhook/{webhookId}](https://lobbie-partner.redocly.app/openapi/webhooks/getwebhookendpoint.md): Retrieve detailed information about a webhook endpoint including its configuration and recent delivery status. ### Update webhook endpoint - [PUT /partner/v2/account/{accountId}/webhook/{webhookId}](https://lobbie-partner.redocly.app/openapi/webhooks/updatewebhookendpoint.md): Update a webhook endpoint's URL, event subscriptions, or enabled status. ### Send test event - [POST /partner/v2/account/{accountId}/webhook/{webhookId}/test](https://lobbie-partner.redocly.app/openapi/webhooks/testwebhookendpoint.md): Send a test event to the webhook endpoint to verify connectivity. The test event will have type 'test.ping' with sample data. ### List webhook endpoints - [GET /partner/v2/webhook](https://lobbie-partner.redocly.app/openapi/webhooks/listwebhookendpoints_1.md): Retrieve all configured webhook endpoints for the account. ### Create webhook endpoint - [POST /partner/v2/webhook](https://lobbie-partner.redocly.app/openapi/webhooks/createwebhookendpoint_1.md): Create a new webhook endpoint to receive event notifications. Specify the URL and the event types you want to subscribe to. A signing secret will be generated and returned - store it securely. ### List available event types - [GET /partner/v2/webhook/event-types](https://lobbie-partner.redocly.app/openapi/webhooks/listeventtypes_1.md): Retrieve the list of event types that can be subscribed to. ### Delete webhook endpoint - [DELETE /partner/v2/webhook/{webhookId}](https://lobbie-partner.redocly.app/openapi/webhooks/deletewebhookendpoint_1.md): Delete a webhook endpoint. Pending deliveries will be cancelled. ### Get webhook endpoint by ID - [GET /partner/v2/webhook/{webhookId}](https://lobbie-partner.redocly.app/openapi/webhooks/getwebhookendpoint_1.md): Retrieve detailed information about a webhook endpoint including its configuration and recent delivery status. ### Update webhook endpoint - [PUT /partner/v2/webhook/{webhookId}](https://lobbie-partner.redocly.app/openapi/webhooks/updatewebhookendpoint_1.md): Update a webhook endpoint's URL, event subscriptions, or enabled status. ### Send test event - [POST /partner/v2/webhook/{webhookId}/test](https://lobbie-partner.redocly.app/openapi/webhooks/testwebhookendpoint_1.md): Send a test event to the webhook endpoint to verify connectivity. The test event will have type 'test.ping' with sample data.