nickcheek / brightree
Brightree API Wrapper
Requires
- php: >=7.4 || ^8.0
- ext-soap: *
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2026-03-24 18:57:33 UTC
README
PHP wrapper for the Brightree API.
Installation
You can install the package via composer:
composer require nickcheek/brightree
Usage
Reference Class in your controller
use \Nickcheek\Brightree\Brightree;
Create a new instance of the service and the API call you're looking for.
$bt = new Brightree($username,$password); $patient = $bt->Patient()->PatientFetchByBrightreeID(141508); return $patient;
Update
Fluent query builders were added for the search-heavy services.
See QUERY_BUILDERS.md for examples covering:
PatientSalesOrderDoctorInsuranceDocument
API's
Patient Class
Usage
$bt = new Brightree($username,$password); $patient = $bt->Patient()->PatientFetchByBrightreeID(141508); return $patient;
Methods
AdditionalPatientContactCreate($additionalPatientContact); AdditionalPatientContactFetchByBrightreeID($patientBrightreeID); AdditionalPatientContactUpdate($brightreePatientContactKey, $additionalPatientContact); PatientCreate($patient); PatientSearch($patient); PatientUpdate($patient); PatientFetchByExternalID($externalId); PatientFetchByPatientID($patientId); PatientFetchByBrightreeID($brightreeId); PatientPhoneNumberSearch($patient); PatientNoteCreate($note); PatientNoteFetchByKey($key); PatientNoteFetchByPatient($brightreeId); PatientNoteSearch($search); PatientNoteUpdate($update); PatientPayorAdd($payor); PatientPayorFetch($payor); PatientPayorFetchAll($patientKey); PatientPayorRemove($brightreeid); PatientPayorUpdate($payor); PatientAddMarketingReferral($brightreeid,$referralid); PatientRemoveMarketingReferral($id); FacilityMasterInfoFetchAll(); FacilityResidentCreate($resident); PharmacyPatientClinicalInfoFetchByBrightreeID($query); PharmacyPatientLabResultsFetchByBrightreeIDAndPatientBrightreeID($patientID, $brightreeID); PharmacyPatientMedicationHistoryFetchByBrightreeIDAndPatientBrightreeID($patientID, $brightreeID); PharmacyPatientMostRecentLabResultsFetchByPatientBrightreeID($patientID); FetchPatientOptInStatus($brightreeId, $patientPhone); UpdatePatientOptInStatus($patientOptInStatus);
Document Management Class
Usage
$bt = new Brightree($username,$password); $document = $bt->Document()->DocumentTypesFetchAll(); return $document;
Methods
DocumentTypesFetchAll(); DocumentBatchCreate($batch); DocumentBatchSearch($search); DocumentSearch($search); DocumentPropertyUpdate($query); FetchDocumentContent($key); GenerateDocumentID($query); StoreDocument($document);
Custom Field Class
Usage
$bt = new Brightree($username,$password); //If you need to return the inactive records, pass the number 1 as the second variable $cf = $bt->CustomField()->CustomFieldFetchAllByCategory('Patient',1); return $cf;
Methods
CustomFieldFetchAllByCategory($category,$includeInactive); CustomFieldValueFetchAllByBrightreeID($brightreeID,$category); CustomFieldValueSaveMultiple($query);
Doctor Class
Usage
$bt = new Brightree($username,$password); $doctor = $bt->Doctor()->DoctorFetchByBrightreeID(123); return $doctor;
Methods
AddDoctorReferralContact($doctorBrightreeID,$referralContactBrightreeID); DoctorCreate($query); DoctorFetchByBrightreeID($brightreeID); DoctorFetchByExternalID($externalID); DoctorGroupFetchAll(); DoctorReferralContactsFetchByDoctorKey($doctorBrightreeID); DoctorSearch($query); DoctorUpdate($query); DoctorNoteCreate($query); DoctorNoteUpdate($query); DoctorNoteFetchByKey($brightreeID); DoctorNoteFetchByDoctor($brightreeID); FacilityFetchAll(); FacilityGroupFetchAll(); MarketingRepFetchAll(); RemoveDoctorReferralContact($doctorBrightreeID,$referralContactBrightreeID);
Insurance Class
Use the INSURANCE Readme to see available definitions.
Usage
$bt = new Brightree($username,$password); $insurance = $bt->Insurance()->InsuranceFetchByBrightreeID(['BrightreeID'=>123]); return $insurance;
Methods
InsuranceFetchByBrightreeID($BrightreeID); InsuranceFetchByExternalID($ExternalID); InsuranceSearch($query); InsuranceUpdate($query); InsuranceCreate($query); BranchOfficeInsuranceFetchByBranchBrightreeIDAndInsuranceBrightreeID($branchID,$insuranceID); BranchOfficeInsuranceUpdate($InsuranceCarrierCodeUpdate); BundleBillingRuleSetFetchAll(); ClaimFormFetchAll(); CommercialEligibilityPayerSearch($InsuranceCarrierCodeUpdate); CommercialPayerSearch($InsuranceCarrierCodeUpdate); CoverageLimitFetchAll(); CustomAppealFormFetchAll(); FetchPmtSubTypeByPmtTypeBrightreeID($paymentTypeBrightreeID); InsuranceCarrierCodeCreate($query); InsuranceCarrierCodeUpdate($query); InsuranceCarrierCodeDelete($brightreeID); InsuranceCompanyFetchAll(); InsuranceCreate($query); InsuranceGroupFetchAll(); InsurancePlanTypeFetchAll(); InsurancePrintedFormsClaimFieldsFetch(); InsurancePrintedFormsPARFieldsFetch(); InsuranceSpanDateHoldInclusionCreate($query); InsuranceSpanDateHoldInclusionDelete($brightreeID); InsuranceSpanDateOverrideCreate($query); InsuranceSpanDateOverrideDelete($brightreeID); InsuranceSpanDateOverrideUpdate($query); InsuranceValidationRuleSetCreate($validationRuleSetBrightreeID,$insuranceBrightreeID); InsuranceValidationRuleSetDelete($insuranceBrightreeID); ItemGroupFetchAll(); ItemGroupFetchByInsuranceBrightreeID($insuranceBrightreeID); PARFormFetchAll(); Ping(); PriceTableSearch($query); SpanDateSplit($query);
Inventory Class
Usage
$bt = new Brightree($username,$password); $inventory = $bt->Inventory()->ClaimNoteTypeFetchAll(); return $inventory;
Methods
ClaimNoteTypeFetchAll(); CoverageTypeFetchAll(); FetchItemLocations($query); FetchItemQuantitiesAtLocation($query); InventoryItemAddLots($query); InventoryItemAddSerialNumbers($query); InventoryItemAdjustment($query); InventoryItemTransfer($query); ItemAddToLocation($query); ItemAddToLocations($query); ItemCreate($query); ItemFetchByBrightreeID($query); ItemFetchByExternalID($query); ItemFetchByItemID($query); ItemFetchReplacementItemsByBrightreeID($query); ItemFetchReplacementItemsByItemID($query); ItemLocationsUpdate($query); ItemLocationUpdate($query); ItemSearch($query); ItemUpdate($query); KitTypeFetchAll(); NDCFetchAll(); StockingUOMFetchAll();
Pickup/Exchange Class
Usage
$bt = new Brightree($username,$password); $params = array( 'searchParams'=> array( 'Branch'=> array( 'ID' => '102' ) ), 'sortParams' => '', 'pageSize' => '100', 'page' => 1 ); $puex = $bt->Pickup()->PickupExchangeSearch($params); return $puex;
Methods
PickupExchangeAddAllRentalItems($query); PickupExchangeAddDeliveryException($query); PickupExchangeAddPickupItem($query); PickupExchangeCancelPOD($query); PickupExchangeConfirm($query); PickupExchangeCreate($query); PickupExchangeDelete($query); PickupExchangeFetchByBrightreeID($query); PickupExchangeFetchByExternalID($query); PickupExchangeItemAddDeliveryException($query); PickupExchangeItemSpecifyExchangeItem($query); PickupExchangeMessagesFetchByBrightreeID($query); PickupExchangePayorSearch($query); PickupExchangeRemoveItem($query); PickupExchangeSearch($query); PickupExchangeSendPOD($query); PickupExchangeUpdate($query); PickupExchangeUpdateItem($query); PickupExchangeUpdatePODStatus($query);
Reference Class
Usage
$bt = new Brightree($username,$password); $reference = $bt->Reference()->AccountGroupFetchAll(); return $reference;
Methods
AccountGroupFetchAll(); AddFacilityReferralContact($query); BranchInfoFetchAll(); BranchInfoFetchByBrightreeID($query); ClaimNoteTypeFetchAll(); ContactTypeCreate($query); ContactTypeDelete($query); ContactTypeFetchAll(); ContactTypeFetchByBrightreeID($query); ContactTypeUpdate($query); DeliveryTechnicianFetchAll(); DepreciationTypesFetchAll(); EPSDTConditionCodeFetchAll(); FacilityCreate($query); FacilityDelete($query); FacilityFetchByBrightreeID($query); FacilityFetchByExternalID($query); FacilityInfoFetchAll(); FacilityReferralContactsFetchByFacilityKey($query); FacilityUpdate($query); FetchCurrentSecUser(); FunctionalAssessmentFetchAll(); GLAccountGroupsFetchAll(); ItemGroupFetchAll(); ItemManufacturerFetchAll(); ItemStatusFetchAll(); ItemTypesFetchAll(); LocationInfoFetchAll(); MarketingRepFetchAll(); MarketingRepFetchByBrightreeID($query); MarketingRepFetchByExternalID($query); MarketingRepUpdateExternalID($query); MSPInsTypeFetchAll(); PatientNoteReasonFetchAll(); PlaceOfServiceFetchAll(); PolicyClaimCodeFetchAll(); PolicyTypeCodeFetchAll(); PractitionerInfoFetchAll(); ReferralContactCreate($query); ReferralContactFetchByBrightreeID($query); ReferralContactFetchByExternalID($query); ReferralContactSearch($query); ReferralContactUpdate($query); ReferralFetchByBrightreeID($query); ReferralSearch($query); RemoveFacilityReferralContact($query); SalesOrderClassificationFetchAll(); SalesOrderManualHoldReasonFetchAll(); SalesOrderVoidReasonFetchAll(); SalesTypesFetchAll(); SecUsersFetchAll(); ShippingCarriersFetchAll(); SiteInfoFetch($query); TaxZoneFetchAll(); VendorFetchByBrightreeID($query); VendorsFetchAll(); WIPStatesFetchAll();
SalesOrder Class
Usage
$bt = new Brightree($username,$password); $salesorder = $bt->SalesOrder()->BrightSHIPSalesOrderAck(['soKey'=> 12345]); return $salesorder;
Methods
BrightSHIPSalesOrderAck($query); BrightShipSalesOrderFetch($query); OrderImport($query); SalesOrderAddDeliveryException($query); SalesOrderAddMarketingReferral($query); SalesOrderConfirm($query); SalesOrderCreate($query); SalesOrderFetchByBrightreeID($query); SalesOrderFetchByExternalID($query); SalesOrderFetchByPurchaseOrderID($query); SalesOrderFetchPendingByShippingCarrierKey($query); SalesOrderFetchReadyforShipping($query); SalesOrderFulfillmentVendorsFetchAll(); SalesOrderItemAddDeliveryException($query); SalesOrderItemPriceOptionFetchByBrightreeID($query); SalesOrderItemReplaceGeneric($query); SalesOrderItemUpdateLotNumbers($query); SalesOrderItemUpdatePriceOption($query); SalesOrderItemUpdateSerialNumbers($query); SalesOrderMessagesFetchByBrightreeID($query); SalesOrderOverrideValidationDetailMessage($query); SalesOrderOverrideValidationHeaderMessage($query); SalesOrderPayorSearch($query); SalesOrderQuickAddItem($query); SalesOrderQuickAddItemWithItemsDataReturn($query); SalesOrderRemoveItem($query); SalesOrderRemoveMarketingReferral($query); SalesOrderSearch($query); SalesOrderSendPOD($query); SalesOrderTemplateCreate($query); SalesOrderTemplateCreateSalesOrder($query); SalesOrderTemplateDelete($query); SalesOrderTemplateFetchByBrightreeID($query); SalesOrderTemplateFetchByExternalID($query); SalesOrderTemplateItemFrequencyFetchByBrightreeID($brightreeID); SalesOrderTemplateItemFrequencyUpdate($query); SalesOrderTemplateItemPriceOptionFetchByBrightreeID($query); SalesOrderTemplateItemUpdatePriceOption($query); SalesOrderTemplateQuickAddItem($query); SalesOrderTemplateRemoveItem($query); SalesOrderTemplateScheduleFetchBySOTemplateKey($query); SalesOrderTemplateScheduleLogSearch($query); SalesOrderTemplateScheduleSearch($query); SalesOrderTemplateScheduleUpdate($query); SalesOrderTemplateSearch($query); SalesOrderTemplateUpdate($query); SalesOrderTemplateUpdateInsurance($query); SalesOrderTemplateUpdateItem($query); SalesOrderTemplateUpdateItemPayor($query); SalesOrderTemplateUpdateItemsWithDefaultPriceOption($query); SalesOrderTemplateUpdateWIPState($query); SalesOrderUpdate($query); SalesOrderUpdateInsurance($query); SalesOrderUpdateItem($query); SalesOrderUpdateItemGeneric($query); SalesOrderUpdateItemNextBilling($query); SalesOrderUpdateItemPayor($query); SalesOrderUpdateItemsWithDefaultPriceOption($query); SalesOrderUpdatePODStatus($query); SalesOrderUpdateTracking($query); SalesOrderUpdateWIPState($query); SalesOrderVoid($query); SalesOrderVoidSearch($query); SearchWIPStatusWithUpdate($query); StopReasonFetchAll(); StopReasonSalesOrderFetchByBrightreeID($brightreeID); PatientNotesCommentFetch($patientNoteKey); PatientNoteCommentFetch($patientNoteKey); PatientNoteCommentCreate($query); PatientNoteCommentUpdate($query); StopReasonSalesOrderTemplateFetchByBrightreeID($brightreeID); StopReasonSalesOrderTemplateUpdate($query); StopReasonSalesOrderUpdate($query);
Documentation Class
Usage
$bt = new Brightree($username,$password); $documentation = $bt->Documentation()->CMNFetchByBrightreeID(['BrightreeID'=>12345]); return $documentation;
Methods
CMNCreateFromPatient($query); CMNDetailCreate($query); CMNDetailDelete($query); CMNDetailUpdate($query); CMNFetchByBrightreeID($query); CMNFetchByExternalID($query); CMNFetchByPatientBrightreeID($query); CMNFetchBySalesOrderBrightreeID($query); CMNLog($query); CMNPreview($query); CMNPrint($query); CMNQuestionAnswerConfiguration($query); CMNReasonFetchAll($query); CMNRenew($query); CMNRevise($query); CMNSearch($query); CMNTaskCreate($query); CMNTaskUpdate($query); CMNUpdate($query); PARAddPurchaseLimit($query); PARCreateFromPatient($query); PARDelete($query); PARFetchByBrightreeID($query); PARFetchByExternalID($query); PARFetchByPatientBrightreeID($query); PARFetchBySalesOrderBrightreeID($query); PARFetchBySalesOrderTemplateBrightreeID($query); PARLog($query); PARRenew($query); PARSearch($query); PARTaskCreate($query); PARTaskFetchByPARBrightreeID($brightreeID); PARTaskReasonFetchAll(); PARTaskUpdate($query); PARUpdate($query); PARUpdatePurchaseLimit($query); SalesOrderItemLinkCMN($query); SalesOrderItemLinkNewCMN($query); SalesOrderItemLinkToNewPAR($query); SalesOrderItemLinkToPAR($query); SalesOrderItemsLinkCMN($query); SalesOrderItemsLinkNewCMN($query); SalesOrderItemsLinkToNewPAR($query); SalesOrderItemsLinkToPAR($query); SalesOrderItemsUnlinkCMN($query); SalesOrderItemsUnlinkPAR($query); SalesOrderItemUnlinkCMN($query); SalesOrderItemUnlinkPAR($query); SalesOrderTemplateItemLinkToPAR($query); SalesOrderTemplateItemsLinkToPAR($query); SalesOrderTemplateItemsUnlinkPAR($query); SalesOrderTemplateItemUnlinkPAR($query); SetParticipantComplianceDate($query);
Pricing Class
Usage
$bt = new Brightree($username,$password); $pricing = $bt->Pricing()->NonTaxReasonFetchAll($query); return $pricing;
Methods
CMNFormFetchAll($query); NonTaxReasonFetchAll($query); PriceCreateItem($query); PriceCreateStandard($query); PriceDetailCreate($query); PriceDetailFetchByBrightreeDetailID($query); PriceDetailUpdate($query); PriceFetch($query); PriceOptionLetterTypeFetchAll($query); PriceTableFetchAll($query);
Security Class
Usage
$bt = new Brightree($username,$password); $security = $bt->Security()->UserFetchByBrightreeID($brightreeID); return $security;
Methods
UserCreate($query); UserFetchByBrightreeID($brightreeID); UserSearch($query); UserUpdate($query); UserGroupCreate($query); UserGroupUpdate($query); UserGroupFetchByBrightreeID($query); UserGroupFetchAll(); UserGroupPermissionsFetchByUserGroupBrightreeID($query); UserGroupPermissionsUpdate($query); UserGroupBDMPermissionsFetchByUserGroupBrightreeID($userGroupBrightreeID); UserGroupBDMPermissionsUpdate($userGroupBrightreeID, $userGroupBDMPermissions);
Invoice Class
Usage
$bt = new Brightree($username,$password); $invoice = $bt->Invoice()->InvoiceFetchByBrightreeID($brightreeID); return $invoice;
Methods
InvoiceCreatePrintActivity($brightreeID); InvoiceFetchByBrightreeID($brightreeID); InvoiceFetchByInvoiceID($invoiceID); InvoiceItemUpdate($query); InvoiceUpdate($query); OpenInvoiceAgedBalanceFetchByPatient($id); OpenInvoiceBalanceFetchByPatient($id); ResubmitInvoices($query);
Custom
(new as of 11/16/20)
Any function that may not be defined can now be used in a custom query inside any service.
$bt = new Brightree($username,$password); $patient = $bt->Patient()->Custom('PatientFetchByPatientID', array('PatientID' => $id)); return $patient;
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email nick@nicholascheek.com.
Credits
License
The MIT License (MIT). Please see License File for more information.