curl -X POST "https://api.nevatal.com/api/v1/billing/invoices" \
-H "Authorization: Bearer nvtl_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"patientId": "pat_abc123",
"items": [
{
"description": "Consulta General",
"procedureId": "proc_general_consult",
"quantity": 1,
"unitPrice": 150000,
"taxRate": 0.19
}
],
"notes": "Follow-up appointment billing"
}'
{
"id": "inv_002",
"invoiceNumber": "FV-2025-0043",
"patientId": "pat_abc123",
"status": "draft",
"subtotal": 150000,
"tax": 28500,
"total": 178500,
"currency": "COP",
"createdAt": "2025-03-16T09:00:00Z"
}
Billing
Create Invoice
Create a new invoice for a patient
POST
/
api
/
v1
/
billing
/
invoices
curl -X POST "https://api.nevatal.com/api/v1/billing/invoices" \
-H "Authorization: Bearer nvtl_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"patientId": "pat_abc123",
"items": [
{
"description": "Consulta General",
"procedureId": "proc_general_consult",
"quantity": 1,
"unitPrice": 150000,
"taxRate": 0.19
}
],
"notes": "Follow-up appointment billing"
}'
{
"id": "inv_002",
"invoiceNumber": "FV-2025-0043",
"patientId": "pat_abc123",
"status": "draft",
"subtotal": 150000,
"tax": 28500,
"total": 178500,
"currency": "COP",
"createdAt": "2025-03-16T09:00:00Z"
}
Body Parameters
string
required
The patient ID
array
required
string
Invoice notes
number
Discount amount in COP
string
Link the invoice to a clinical record (EMR). An attention can be billed exactly once —
to a payer (agreement charge) or to the patient (this endpoint), never both. Linking a record
that is already billed on either rail is rejected; see Errors.
curl -X POST "https://api.nevatal.com/api/v1/billing/invoices" \
-H "Authorization: Bearer nvtl_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"patientId": "pat_abc123",
"items": [
{
"description": "Consulta General",
"procedureId": "proc_general_consult",
"quantity": 1,
"unitPrice": 150000,
"taxRate": 0.19
}
],
"notes": "Follow-up appointment billing"
}'
{
"id": "inv_002",
"invoiceNumber": "FV-2025-0043",
"patientId": "pat_abc123",
"status": "draft",
"subtotal": 150000,
"tax": 28500,
"total": 178500,
"currency": "COP",
"createdAt": "2025-03-16T09:00:00Z"
}
Errors
object
Returned when
medicalRecordId (or the record resolved from appointmentId) is already billed
on the payer rail (an active, non-voided agreement charge) or already has an active particular
invoice. An attention is billed once, on one rail; re-billing it after its existing charge or
invoice is voided is allowed.409
{
"success": false,
"error": "This attention is already billed to a payer agreement (July 2026)",
"code": "MEDICAL_RECORD_ALREADY_BILLED",
"correlationId": "req-01H..."
}

