Skip to main content
When you need to send multiple operations at once, FHIR uses a Bundle with a special type.
  • batch: each entry is processed independently (some can succeed, some fail)
  • transaction: all-or-nothing (atomic)
If you want the full overview and response semantics, start with Batch & Transaction.

A tiny mental model

If you care about “all of these changes must happen together”, use transaction.

What it looks like (shape only)

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "request": { "method": "PUT", "url": "Patient/example" },
      "resource": { "resourceType": "Patient", "id": "example" }
    }
  ]
}

Next