/v1/reportsCreate a report
Queues an asynchronous report and returns an ExpirableFile. Poll that ExpirableFile or subscribe to expirable_file.available.
Required API scopes: reports.create
Parameters
Idempotency-Key
header · required
string
Client-generated idempotency key. Required for every POST/PATCH write. Replay of the same key with the same body returns the stored response with an
Idempotency-Replayed: trueheader. Same key + different body returns422 idempotency_key_reused. A duplicate that arrives while the first request is still in flight returns409 idempotency_conflictwithRetry-After: 1.
Request body
application/json
age_rangestring | nullThe optional Patient age range used by supported reports.
Allowed values:
under_18 | over_18 | nullclinician_idstring | null · uuidThe optional Clinician used to restrict supported reports.
end_timestring · date-timerequiredThe inclusive end of the reporting period.
report_typestringrequiredThe type of report to create.
Allowed values:
account_balances | audio_recordings | billing_codes | booked_services | bookings | bookings_summary_for_child_organizations | bookings_with_invoices | bookings_without_invoices | care_episodes | cari_credits_usage | credit_notes | creditors | debtors | debtors_per_invoice | end_of_year_accounts_zip | expenses | financial_summary | indemnity_bookings | indemnity_income | invoice_line_items | issued_invoices | issued_invoices_summary_for_child_organizations | leads_and_enquiries | patient_referrals | patient_registrations | prescriptions_report | product_sales_audit_log | product_sales_report | product_stock_levels_report | profit_and_loss | recall_bookings | received_payments | received_payments_for_invoice_line_items | received_payments_summary_for_child_organizations | referral_summary | refunds | remittance_adjustments | service_variants | tasks_due_per_staff_member | tasks_raisedstart_timestring · date-timerequiredThe inclusive start of the reporting period.
time_range_query_columnstring | nullThe optional date field used by supported Booking, Expense, and Invoice reports.
Allowed values:
bookings.created_at | bookings.start_time | expenses.created_at | expenses.paid_at | invoices.created_at | invoices.supply_date | null
Responses
The report was accepted for processing.
attachment_urlstring | null · urirequiredThe temporary signed download URL, or null while Carebit generates the file and download URL.
created_atstring · date-timerequiredAn ISO 8601 timestamp in UTC, with a
Zsuffix. For example,2026-07-01T09:00:00Z.expires_atstring · date-timerequiredThe time after which Carebit can delete the file.
idstring · uuidrequiredThe resource's unique identifier, formatted as an RFC 4122 version 4 UUID.
objectanyrequiredDiscriminator value emitted at
object.statusstringrequiredWhether Carebit is still creating the report or the file is ready to download.
Allowed values:
processing | succeededtitlestringrequiredThe report type used as the title of the ExpirableFile.
Allowed values:
account_balances | audio_recordings | billing_codes | booked_services | bookings | bookings_summary_for_child_organizations | bookings_with_invoices | bookings_without_invoices | care_episodes | cari_credits_usage | credit_notes | creditors | debtors | debtors_per_invoice | end_of_year_accounts_zip | expenses | financial_summary | indemnity_bookings | indemnity_income | invoice_line_items | issued_invoices | issued_invoices_summary_for_child_organizations | leads_and_enquiries | patient_referrals | patient_registrations | prescriptions_report | product_sales_audit_log | product_sales_report | product_stock_levels_report | profit_and_loss | recall_bookings | received_payments | received_payments_for_invoice_line_items | received_payments_summary_for_child_organizations | referral_summary | refunds | remittance_adjustments | service_variants | tasks_due_per_staff_member | tasks_raisedupdated_atstring · date-timerequiredAn ISO 8601 timestamp in UTC, with a
Zsuffix. For example,2026-07-01T09:00:00Z.
Example
{
"id": "08bbb801-b197-40de-8865-f2d3086221f2",
"object": "expirable_file",
"attachment_url": "https://files.example.invalid/document.pdf?signature=test",
"created_at": "2026-01-01T09:00:00Z",
"expires_at": "2026-01-01T09:00:00Z",
"status": "processing",
"title": "account_balances",
"updated_at": "2026-01-01T09:00:00Z"
}A required parameter is missing or invalid.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}The access token is missing, invalid, expired, or revoked.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}The access token lacks the required scope, or the project is disabled.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}The supplied Clinician was not found in the authenticated Organization.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}A concurrent request holds the idempotency lease (idempotency_conflict). Retry after the delay indicated by Retry-After.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}The Idempotency-Key was previously used with a different request body (idempotency_key_reused), or the request body failed validation.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}Too many requests. Retry after the delay indicated by Retry-After.
errorobjectrequiredThe structured details that describe why the request failed.
codestringrequiredThe machine-readable error code.
errorsarray | nullAdditional errors from a failed validation.
itemsobjectcodestringThe machine-readable code for this validation error.
messagestringA message that explains this validation error.
paramstring | nullThe name of the parameter that caused this validation error, when known.
messagestringrequiredA message that explains the error and how to resolve it.
paramstring | nullThe name of the parameter that caused the error, when known.
typestringrequiredThe high-level category of the error.
Allowed values:
authentication_error | permission_error | invalid_request_error | rate_limit_error | api_error
Example
{
"error":
"code": "resource_missing",
"errors":
"code": "resource_missing",
"message": "The requested resource was not found.",
"param": "patient_id"
}
],
"message": "The requested resource was not found.",
"param": "patient_id",
"type": "authentication_error"
}
}