Skip to main content

Accounts

An account in RCM is the billing wrapper for a patient's care under a specific provider-payer agreement. It groups one or more events (the clinical encounters) so that the whole package can be invoiced as a unit.

⚠️ Don't confuse Account with Event. In Brazilian Portuguese the clinical encounter is called atendimento; in Colombian Spanish, episodio. That's what RCM models as an Event, not an Account. An Account is purely the billing-side construct that bundles events together.

Account ← billing wrapper (this page)
├── Event (base) ← clinical encounter (atendimento BR / episodio CO)
│ ├── Charge ← billable line items
│ ├── Charge
│ └── SupportFile ← documents
├── Event (secondary)
│ └── Charge
└── ...

A typical account holds:

  • A single base event (e.g. a hospital admission)
  • Optional secondary events linked via parent_event_id (e.g. an outpatient follow-up that bills together with the admission)
  • All the charges of every event in the account
  • All the support files attached at event or account level
  • One or more invoices that group charges for dispatch to the payer

Lifecycle

You never POST to create an account directly — RCM creates it implicitly when the first charge for a new origin_event_id arrives:

Throughout this, the account itself is read-only from your perspective in v1 — RCM creates it from your charge submissions; you operate on its children (events, charges, support files, invoices). The only mutation at account level is changing the payer/agreement before any item is invoiced (see Modifying account state).

Identifiers

An account is addressable two ways:

IdentifierWhere it comes fromWhen to use it
account_id (UUID)Returned by RCM after the first charge implicitly creates itRCM endpoints that operate on an existing account. The stable internal identifier.
origin_event_id (string)Sent by your HIS/PMS on each chargeWhen you don't know the account_id yet but you do know the encounter id from your system. GET /v1/accounts/base-accounts/origin-events/{originEventId}/deep-info

You normally don't track account_id on your side — your system thinks in terms of origin_event_id. RCM exposes both because some operations are scoped to the account (e.g. dispatch lookups, agreement changes).

Modifying account state

In v1, you can:

Most other mutations happen at the charge or support-file level. The account is a coordinator, not a frequently-edited entity.

Reading account state

EndpointReturns
GET /v1/accounts/base-accounts/origin-events/{originEventId}/deep-infoFull account state + base event + provider + agreement + linked charges and support files, looked up by your HIS's origin_event_id.
GET /v1/accounts/sent-accounts-statusesPaginated list of dispatch packages (accounts already sent to a payer) for the authenticated provider.
GET /v1/accounts/sent-accounts-statuses-details/{accountId}Per-invoice detail for a dispatched account, including the S3 URLs of each support file.

Country specifics

Account semantics are the same everywhere — it's a billing wrapper — but the events it groups vary by country regulation:

  • Brazil (BR): TISS guide is the standard support file. Charges reference TUSS procedure codes. Multiple atendimentos for the same hospital stay typically go in one account.
  • Colombia / other LATAM: episodios are billed under each country's local catalogue. The same wrapper concept applies.

What changes per country is which support_file_code values exist in the catalogue and which validation rules DVS applies — not the account model itself.