/
CL
clinicos
/
PawthosX.Business.API | v1
Search skmtc…
⌘K
Docs
Sign in
Sign in
APIs
Generators
Stacks
Projects
Docs
History
Schema
Sources
Checked 10h ago · Updated 3d ago
View markdown
clinicos
PawthosX.Business.API | v1
get
Get all applied discounts for an estimate
v2
latest
OpenAPI 3.1.1
2026-08-07
854
993
2.4 MB
AdminS3
2
ApiKeys
7
Appointments
21
AppointmentTypes
10
BillableItems
5
Breeds
5
BulkClientExport
2
BulkPatientExport
2
CareQueue
2
CaseMilestones
6
Cases
5
ChatExport
1
ClientAppInvite
3
ClientExport
3
Clients
5
ClinicConfig
29
ClinicSettings
2
Clocking
6
Compliance
1
ConsentDocuments
2
DeaBooks
9
DeaExport
2
DiagnosisTerms
1
DiscountCodes
7
Drafts
7
EdgePrinters
3
EdgePrintJobs
2
EmailVerification
2
Estimates
25
ExamTemplates
5
Expenses
6
Featurebase
2
Flowboard
10
GroupCodes
5
GroupVisits
6
Health
1
HomeAgain
4
IntegrationCredentials
15
InternalPrescribing
1
InternalWidget
1
Inventory
23
InventoryApprovals
5
InventoryLocations
7
Invoices
24
get
Get a paginated list of estimates with optional filters
post
/Invoices
get
Clinic-wide open-invoice list (ITE-317): every bill still awaiting money — Draft, Unpaid, or PartiallyPaid — oldest first, with the remaining balance computed from recorded payments. This is the AR view /billing renders.
get
Get an estimate by ID
put
/Invoices/{id}
delete
Hard-delete an invoice. Allowed only when the invoice is provably inert — a InvoiceStatus.Draft (never sent) with no payment, no dispensed line, and not the product of a merge. Anything with committed side effects is refused with 409. An invoice that came from an estimate is refused too: use "revert to estimate" so the source estimate is returned to a clean state rather than left accepted-but-unbilled. Deleting a paid/dispensed bill would strand payments and inventory — those must be reversed through their own paths first.
get
Get the most recent estimate for an appointment
post
/Invoices/{id}/items
put
/Invoices/{id}/items/{itemId}
delete
/Invoices/{id}/items/{itemId}
post
Payment-time combination: merge two or more open, unpaid invoices belonging to the same client into one new invoice. Only bills past the estimate→invoice approval gate qualify — the merge copies their lines (dispense links carried over; dispensing and approval are untouched), re-runs the price rule engine against the combined line set, and archives the sources as Superseded with `mergedIntoInvoiceId` pointing at the new bill.
post
/Invoices/{id}/sign
post
/Invoices/{id}/issue
post
Cancel a bill that should never have been billed (wrong patient, duplicate, service not rendered, goodwill write-off): Status → InvoiceStatus.Void, terminal. This is the exit for invoices built directly in the Payments panel, which have no source estimate and therefore can't revert. A required reason lands in the payment audit log. Refused once any money is attached — reverse the payments first (a Void bill can never take or hold a payment). Dispensed lines do NOT block: voiding the bill never returns stock (there is no reverse-dispense primitive; see docs/dispensing.md §5) — stock corrections are a separate inventory adjustment. Distinct from Superseded (finalized then replaced): merge and revert keep producing Superseded; Void means cancelled outright. Releases the bill's claims on everything upstream of it — the appointment slot, the source quote's invoice_id, and the reverse dispense links — so a live quote stops resolving to a written-off bill. Unlike revert-to-estimate this leaves the quote's EstimateStatus untouched: void cancels the bill, it does not reopen the quote for editing.
post
/Invoices/{id}/send-invoice
get
Download invoice as PDF
post
/Invoices/{id}/send-receipt
post
/Invoices/{id}/apply-discount
delete
/Invoices/{id}/discounts/{appliedDiscountId}
get
Get all applied discounts for an estimate
post
Expand a group code (kit) onto the estimate as individual line items. Each component line is tagged with the originating GroupCodeId; any price rules attached to the kit are applied during the resulting recalculation.
delete
Remove every line item on the estimate that was emitted from the given group code.
post
Runs the price rule engine over a proposed set of line items without persisting. Used by the invoice grid to show rule discounts (BOGO, spend thresholds, etc.) live as the user edits, while keeping the server as the single source of truth for the math — no client-side evaluator to drift.
post
Add a dispensed inventory item to an estimate as a line item
JourneyMilestones
6
Kiosk
4
LabPanels
5
Labs
16
LocationClosures
4
Locations
11
Logos
7
MedicationRequests
7
MentorMetrics
5
Metrics
31
NpsAnalytics
3
Partners
6
PatientGroups
9
PatientMasses
6
PatientProblems
4
PatientRecordExport
3
Patients
20
Payments
19
PaymentTokens
5
Pharmacies
5
Phones
2
PriceRules
6
Printers
6
PrintJobs
4
PtoRequests
6
PublicNps
2
PublicPriceList
5
PublicQuestionnaires
2
PublicSmsConsent
2
PurchaseOrders
11
QiEvents
9
QuestionnaireResponses
6
Questionnaires
10
RabiesTags
10
RdvmPortal
22
Recordings
7
RecurringExpenses
5
ReferralMessages
2
Referrals
20
Reminders
14
Reports
2
RetailItems
11
Roles
6
RoomDayAssignments
3
RxGovernance
25
SavedReports
5
ScheduleItems
10
ServiceCatalog
5
Shifts
5
ShiftSwaps
8
SlotConfigurations
6
SmsConsent
9
Species
5
Subscriptions
8
SurgicalRecords
6
TagAssignments
4
Tags
5
TelnyxCallControl
1
Templates
10
TenantKnowledge
4
TimeEntries
5
Transparency
3
Users
11
Vaccinations
9
VaccineAdministration
3
VaccineCertificateRecords
6
VaccineCertificates
2
VaccineTypes
5
Vendors
6
Vitals
2
VitalTypes
6
Widget
17
WidgetChatbot
4
WorkItemRules
5
WorkTasks
13
Invoices
Get all applied discounts for an estimate
get
/Invoices/{id}/discounts
Path parameters
id
string
required
The estimate ID
Response
OK
AppliedDiscountDto[]
required
id
string
invoiceId
string
discountPolicyId
string
invoiceLineItemId
string
nullable
discountCode
string
discountName
string
discountType
string
discountValue
union
calculatedAmount
union
appliedBy
UserSummaryDto
appliedAt
string
date-time