Financial Transactions

Do Not Use For Patient Invoicing

Candid Data Share is not designed to support patient invoicing workflows. For all patient invoicing use cases, you must use the Patient Invoicing API. This is the only supported method for ensuring balance accuracy.

Candid Data Share data are generated on a periodic basis and do not provide a live, real-time view of a patient’s balance. Please be advised that Candid cannot support issues related to invoicing breaks or inaccuracies that result from using Candid Data Share for this purpose.

Transaction Detail Tables

The core of the financial transactions data model is the export_transaction table. This table will have most of the information you need to analyze your financial transactions. If you need to access more detailed data about one type of transaction, you can join the export_transaction table to one of the associated detail tables using an inner join:

SELECT *
FROM export_transaction
JOIN export_adjustment_details
ON export_transaction.transaction_type = 'ADJUSTMENT'
AND export_transaction.transaction_id = export_adjustment_details.transaction_id

Table Relationships

Each transaction type has its own detail table that can be joined based on the transaction type:

TablePrimary KeyJoin Condition
export_transactiontransaction_idCore transaction table
export_payment_detailstransaction_idtransaction_type = 'PAYMENT'
export_charge_detailstransaction_idtransaction_type = 'CHARGE'
export_adjustment_detailstransaction_idtransaction_type = 'ADJUSTMENT'
export_batch_detailsbatch_idJoin on batch_id

Informational Adjustments

Informational Adjustments are not tied to a financial transaction and do not affect balances — payers include these Claim Adjustment Reason Codes (CARCs) and Remittance Advice Remark Codes (RARCs) through remits (ERAs) to convey adjudication details. They can be associated directly with Service Lines or Encounters:

To learn more about CARCs and RARCs, see this Candid Support Center article: Understanding Remit Codes (CARCs & RARCs).

Batches

A batch is a monthly accounting period that users can adjust while it is open — the unit Candid’s End-of-Month (EOM) close operates on. Each batch runs from batch_start_date to batch_end_date, and closed_at is set once that month is closed (null for the open, current period).

Common Queries

Service Line Transaction Summary

To view a current transaction summary at the service line level, filtering out voids and voided transactions:

SELECT *
FROM export_transaction
JOIN export_charge_details
ON export_transaction.transaction_id = export_charge_details.transaction_id
JOIN export_service_line
ON export_transaction.service_line_id = export_service_line.service_line_id
WHERE export_transaction.voids_transaction_id IS NULL
AND export_transaction.voided_by_transaction_id IS NULL

Roll Up Transactions by Batch

SELECT
bd.batch_id,
bd.batch_start_date,
bd.batch_end_date,
bd.closed_at,
SUM(t.amount_cents) as total_amount_cents
FROM export_transaction t
JOIN export_batch_details bd
ON t.batch_id = bd.batch_id
GROUP BY 1, 2, 3, 4