UDENTIVA پلتفرم هوشمند مدیریت دندانپزشکی
DEVELOPERS

UDENTIVA API Documentation

Integrate your clinic data securely with your own systems. A REST-based, consistent and predictable API.

External API access coming soon
The endpoints below are the full scope to be opened externally. Get in touch for early access.
API Security Model
Data isolation, idempotent writes, parameterized queries — code-based security. →

Overview

The UDENTIVA API follows REST principles; it uses a JSON body and returns standard HTTP status codes. All requests are made over HTTPS and authenticated with an API key. Every request is scoped to the data of the clinic the key is bound to (full data isolation).

Base address:

https://api.udentiva.com

Authentication

Carry your API key in the Authorization header in requests. Keys are generated through the clinic panel and can be revoked at any time.

# Example request
curl https://api.udentiva.com/v1/patients \
  -H "Authorization: Bearer udk_live_xxx" \
  -H "Accept: application/json"

Endpoints

81 endpoint · 12 source

All endpoints to be opened externally are listed below. Each resource's detail page contains parameters, an example request/response and security notes. Write endpoints support the Idempotency-Key header.

بیماران · 9

Detail & example →
GET /v1/patients Retrieves the patient list with pagination
POST /v1/patients Creates a new patient record
GET /v1/patients/{id} Retrieves the details of a single patient
PUT /v1/patients/{id} Updates patient information
DELETE /v1/patients/{id} Archives the patient (soft-delete)
GET /v1/patients/{id}/medical Lists anamnesis, allergies and medical history
POST /v1/patients/{id}/medical Adds a medical/anamnesis record
GET /v1/patients/{id}/documents Lists patient documents
POST /v1/patients/{id}/documents Adds a document to the patient

Scheduling & Calendar · 10

Detail & example →
GET /v1/appointments Lists appointments by date range
POST /v1/appointments Creates a new appointment (conflict-checked)
POST /v1/appointments/{id}/status Changes the appointment status
POST /v1/appointments/{id}/reschedule Reschedules the appointment
POST /v1/appointments/{id}/remind Sends an appointment reminder
GET /v1/units Lists chairs/units
GET /v1/doctors Lists physicians
GET /v1/waitlist Retrieves the waitlist
POST /v1/waitlist Adds a patient to the waitlist
DELETE /v1/waitlist/{id} Removes from the waitlist

Odontogram & Treatment · 14

Detail & example →
GET /v1/patients/{id}/odontogram Retrieves the current FDI tooth chart
POST /v1/patients/{id}/odontogram Adds a tooth state (append-only)
GET /v1/patients/{id}/odontogram/{tooth}/history Retrieves the state history of a tooth
GET /v1/services Lists the service/procedure catalog
POST /v1/services Adds a service item
PUT /v1/services/{id} Updates a service item
GET /v1/patients/{id}/plans Lists the patient's treatment plans
POST /v1/patients/{id}/plans Creates a treatment plan
GET /v1/plans/{id} Retrieves treatment plan details
POST /v1/plans/{id}/status Changes the plan status
POST /v1/plans/{id}/items Adds a stage/item to the plan
POST /v1/plan-items/{id}/status Changes the status of a plan item
GET /v1/patients/{id}/prescriptions Lists prescriptions
POST /v1/patients/{id}/prescriptions Creates a prescription

Collections & Finance · 12

Detail & example →
POST /v1/invoices Creates an invoice
GET /v1/invoices Lists invoices
GET /v1/invoices/{id} Retrieves invoice details
POST /v1/invoices/{id}/void Cancels the invoice (reversing entry)
POST /v1/invoices/{id}/einvoice Sends the invoice as an e-Fatura (GİB)
GET /v1/einvoices Lists e-Fatura records
POST /v1/payments Records a collection (idempotent)
GET /v1/patients/{id}/balance Retrieves the patient's account balance
GET /v1/patients/{id}/ledger Lists the patient's account transactions
GET /v1/cash/day Retrieves the end-of-day cash summary
GET /v1/cari Lists account balances
GET /v1/billing/summary Retrieves the finance/collection summary

موجودی انبار · 6

Detail & example →
GET /v1/stock Lists stock items
GET /v1/stock/critical Lists stock at critical level
POST /v1/stock Creates a stock item
PUT /v1/stock/{id} Updates the stock item
POST /v1/stock/{id}/movement Adds a stock movement (in/out)
GET /v1/stock/{id}/movements Lists stock movements

Imaging · 3

Detail & example →
GET /v1/patients/{id}/images Lists the patient's images (X-ray/photo)
POST /v1/patients/{id}/images Uploads an image (S3, stream/presigned)
GET /v1/images/{id}/raw Downloads the image file (presigned)

آزمایشگاه · 7

Detail & example →
GET /v1/lab-orders Lists lab orders
POST /v1/lab-orders Creates a lab order
GET /v1/lab-orders/{id} Retrieves order details
PUT /v1/lab-orders/{id} Updates the order
POST /v1/lab-orders/{id}/status Changes the order status
GET /v1/labs Lists partner laboratories
POST /v1/labs Adds a laboratory

Lead & CRM · 7

Detail & example →
GET /v1/leads Lists leads/requests
POST /v1/leads Creates a new lead
POST /v1/leads/{id}/status Changes the lead status/stage
GET /v1/tasks Lists tasks
POST /v1/tasks Creates a task
GET /v1/messages Lists patient communication messages
POST /v1/messages Creates a message/communication record

گردشگری سلامت · 5

Detail & example →
GET /v1/tourism-cases Lists health tourism cases
POST /v1/tourism-cases Creates a tourism case
POST /v1/tourism-cases/{id}/status Changes the case stage
GET /v1/shipments Lists transfer/shipment records
POST /v1/shipments Creates a transfer/shipment record

Reporting & BI · 3

Detail & example →
GET /v1/bi Retrieves business intelligence metrics
GET /v1/profit Retrieves the profitability report
GET /v1/rcm Retrieves revenue cycle management (RCM) metrics

Webhooks · 3

Detail & example →
GET /v1/webhooks Lists registered webhook subscriptions
POST /v1/webhooks Registers a webhook for event notifications
DELETE /v1/webhooks/{id} Deletes the webhook subscription

Data Transfer (Export API) · 2

Detail & example →
GET /export/v1 Returns the key's permitted datasets and usage information (discovery)
GET /export/v1/{dataset} Pulls the selected dataset with pagination (?limit=1000&offset=0)

Error Format

Errors are returned in a consistent envelope; the code is for the machine, the message for the user. Internal error/stack is never leaked.

{
  "error": {
    "code": "validation_failed",
    "message": "Invalid field: email"
  }
}

Rate Limit

Requests are rate-limited per minute. When the limit is exceeded, 429 is returned; the response headers carry the remaining quota information.

Versioning

The API version is carried in the path (e.g. /v1). Backward-incompatible changes are released under a new version.

Webhook Events

As events occur at your clinic, a signed notification is sent to your registered address. This keeps your own system up to date in real time.

# Example event types
patient.created   appointment.created   appointment.status_changed
invoice.created   payment.created       lab_order.status_changed
treatment_plan.updated   lead.created   tourism_case.status_changed
Want early access?
Be the first to know when the API opens.
تماس بگیرید