For AI agents: the documentation index is at /docs/payerbox/llms.txt. A Markdown version of this page is available at /docs/payerbox/api-reference/resources/consent.md or by requesting it with the Accept: text/markdown header.
Payerbox Docs

Consent

A member's data-sharing decisions are FHIR Consent resources in Payerbox's Aidbox, under two Da Vinci profiles:

DecisionProfileIG
Provider Access opt-out, or a return to sharingPDex Provider Consent, http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-provider-consentDa Vinci PDex STU 2.1
Payer-to-Payer opt-inHRex Consent, http://hl7.org/fhir/us/davinci-hrex/StructureDefinition/hrex-consentDa Vinci HRex STU 1.1

The records arrive in three ways:

  • members record them on the member portal (Consent Capture);
  • the plan's data feed delivers them (Member Consent);
  • a system writes them through the FHIR API, as described on this page.

Provider Access checks the opt-outs in $provider-member-match and in every $davinci-data-export. The Payer-to-Payer opt-ins say which other plans the plan may ask for the member's history.

Endpoints

InteractionMethodURL
ReadGET/fhir/Consent/<id>
SearchGET/fhir/Consent?<search-params>
CreatePOST/fhir/Consent
Create or updatePUT/fhir/Consent/<id>
PatchPATCH/fhir/Consent/<id>
HistoryGET/fhir/Consent/<id>/_history
TransactionPOST/fhir

The general behavior of these interactions, including conditional requests and If-Match, is in FHIR RESTful API.

Auth

A SMART Backend Services or Client Credentials client whose access policy allows the interaction on Consent. Members reach their own records only through the member portal. See Authentication and Access policies.

Search parameters

ParameterTypeElementUse
patientreferenceConsent.patientPatient/<id> or <id>.
statustokenConsent.statusactive for records in force; inactive for retired ones.
categorytokenConsent.categoryhttp://hl7.org/fhir/us/davinci-pdex/CodeSystem/pdex-consent-api-purpose|provider-access or |payer-to-payer picks the switch; both kinds also carry http://terminology.hl7.org/CodeSystem/v3-ActCode|IDSCL.
provision-typetokenConsent.provision.typedeny or permit. Added by Payerbox; not a base FHIR parameter.
_profileurimeta.profileThe PDex or HRex canonical above.
scopetokenConsent.scopehttp://terminology.hl7.org/CodeSystem/consentscope|patient-privacy.
datedateConsent.dateTimeWhen the decision was made.
perioddateConsent.provision.periodIn force on a day: period=le<day>&period=ge<day>, which also matches periods without an end.
organizationreferenceConsent.organizationThe plan's Organization.
actorreferenceConsent.provision.actor.referenceA Payer-to-Payer source or recipient payer, for example Organization/<id>.
source-referencereferenceConsent.source[x]The consent document.

The base R4 parameters action, consentor, data, identifier, purpose and security-label are available too.

GET /fhir/Consent?patient=Patient/example-member&category=http://hl7.org/fhir/us/davinci-pdex/CodeSystem/pdex-consent-api-purpose|provider-access&status=active&provision-type=deny
Authorization: Bearer <token>
GET /fhir/Consent?patient=Patient/example-member&category=http://hl7.org/fhir/us/davinci-pdex/CodeSystem/pdex-consent-api-purpose|payer-to-payer&status=active&period=le2027-06-01&period=ge2027-06-01
Authorization: Bearer <token>
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "entry": [
    {
      "resource": {
        "resourceType": "Consent",
        "id": "67d8623c-9af9-4dac-a40d-f5f30bb856ea",
        "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-provider-consent"] },
        "status": "active",
        "provision": { "type": "deny", "period": { "start": "2026-10-06" } }
      }
    }
  ]
}

Provider Access opt-out

ElementRule
meta.profileThe PDex Provider Consent canonical, without a version.
meta.lastUpdatedRequired whenever meta is sent.
statusactive: the profile fixes it, so a record carries the profile only while it is in force.
scopepatient-privacy.
categoryIDSCL, and the PDex API purpose provider-access.
patient, performerThe member's Patient. PDex STU 2.1 allows only the Patient as performer.
organizationThe plan's Organization.
provision.actorThe plan's Organization in the role performer (the source of the data). A representative who signed can be added in their authority role, for example POWATT.
policyRulecric, with the display Common Rule Informed Consent, as the profile fixes it.
provision.typedeny to opt out, permit to share again.
provision.period.startThe day the decision takes effect.
provision.actiondisclose.
PUT /fhir/Consent/67d8623c-9af9-4dac-a40d-f5f30bb856ea
Authorization: Bearer <token>
Content-Type: application/fhir+json

{
  "resourceType": "Consent",
  "id": "67d8623c-9af9-4dac-a40d-f5f30bb856ea",
  "meta": {
    "profile": ["http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-provider-consent"],
    "lastUpdated": "2026-10-06T14:22:00Z"
  },
  "status": "active",
  "scope": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/consentscope", "code": "patient-privacy" }] },
  "category": [
    { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "IDSCL" }] },
    { "coding": [{ "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/pdex-consent-api-purpose", "code": "provider-access" }] }
  ],
  "patient": { "reference": "Patient/example-member" },
  "dateTime": "2026-10-06T14:22:00Z",
  "performer": [{ "reference": "Patient/example-member" }],
  "organization": [{ "reference": "Organization/example-health-plan" }],
  "policyRule": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/consentpolicycodes", "code": "cric", "display": "Common Rule Informed Consent" }] },
  "provision": {
    "type": "deny",
    "period": { "start": "2026-10-06" },
    "actor": [{
      "role": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type", "code": "performer" }] },
      "reference": { "reference": "Organization/example-health-plan" }
    }],
    "action": [{ "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/consentaction", "code": "disclose" }] }]
  }
}
{
  "resourceType": "Consent",
  "id": "67d8623c-9af9-4dac-a40d-f5f30bb856ea",
  "meta": {
    "profile": ["http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-provider-consent"],
    "versionId": "3927",
    "lastUpdated": "2026-10-06T14:22:00.112Z"
  },
  "status": "active",
  "...": "..."
}

Payer-to-Payer opt-in

ElementRule
meta.profileThe HRex Consent canonical, without a version.
statusactive, fixed by the profile.
scope, categorypatient-privacy; IDSCL, and the PDex API purpose payer-to-payer.
policy.urihttp://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#sensitive for all information, …#regular for non-sensitive information only. The names are the profile's: #sensitive is the wider grant.
sourceReferenceA DocumentReference for the signed form. HRex requires a source document, and it must exist before the Consent is written.
provision.typepermit.
provision.periodstart, and an end set by the plan's policy.
provision.actorEach previous or concurrent payer in the role performer (the source), and the plan's Organization in the role IRCP (the recipient).
performerThe member's Patient, or the RelatedPerson who signed for them.
The elements that differ from the opt-out
{
  "meta": { "profile": ["http://hl7.org/fhir/us/davinci-hrex/StructureDefinition/hrex-consent"], "lastUpdated": "2026-10-06T14:22:00Z" },
  "category": [
    { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "IDSCL" }] },
    { "coding": [{ "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/pdex-consent-api-purpose", "code": "payer-to-payer" }] }
  ],
  "policy": [{ "uri": "http://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#sensitive" }],
  "sourceReference": { "reference": "DocumentReference/3f534529-49b7-4de8-b51c-e9f0d6831242" },
  "provision": {
    "type": "permit",
    "period": { "start": "2026-10-06", "end": "2027-12-31" },
    "actor": [
      { "role": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type", "code": "performer" }] },
        "reference": { "reference": "Organization/lakeside-health-plan" } },
      { "role": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType", "code": "IRCP" }] },
        "reference": { "reference": "Organization/example-health-plan" } }
    ],
    "action": [{ "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/consentaction", "code": "disclose" }] }]
  }
}

Retire a record

A decision is never edited in place. A new decision is a new Consent, and the one it replaces is retired. A Payer-to-Payer withdrawal only retires the opt-in. Both profiles fix status to active, so a retirement sets status to inactive and removes the profile in the same JSON merge patch. A patch that changes only the status is refused.

PATCH /fhir/Consent/67d8623c-9af9-4dac-a40d-f5f30bb856ea
Authorization: Bearer <token>
Content-Type: application/merge-patch+json
If-Match: W/"3927"

{ "status": "inactive", "meta": { "profile": null } }
{
  "resourceType": "Consent",
  "id": "67d8623c-9af9-4dac-a40d-f5f30bb856ea",
  "meta": { "versionId": "3931", "lastUpdated": "2026-10-07T09:10:00.204Z" },
  "status": "inactive",
  "...": "..."
}
{
  "resourceType": "OperationOutcome",
  "issue": [{ "severity": "error", "code": "invalid", "diagnostics": "The value 'inactive' does not match the expected pattern 'active'" }]
}

Send profile: null; an empty array is refused.

Referenced records

Aidbox checks every reference a profile constrains. The referenced record must exist, be of the right type, and declare the profile the target names in its meta.profile, without a version:

ReferenceThe record must declare
patient, and performer when it is the memberhttp://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
organization and the provision actorshttp://hl7.org/fhir/us/davinci-hrex/StructureDefinition/hrex-organization
sourceReferenceAny DocumentReference

Aidbox checks only the declaration, not the record's content. A declaration with a version (us-core-patient|6.1.0) matches only when that is the version the plain URL resolves to on the deployment.

Records written alongside

Records captured on the member portal come with:

ResourceContent
DocumentReferenceThe consent document, LOINC 59284-0 Consent Document: Consent.sourceReference points to it, and its attachment points to the QuestionnaireResponse.
QuestionnaireResponseThe answered form, US Core QuestionnaireResponse profile.
ProvenanceWho signed, how (activity CREATE, ONLINEWRIT), and the form's canonical; a review adds one with the administrator as verifier.
RelatedPerson, DocumentReferenceFor a representative: the RelatedPerson (US Core RelatedPerson profile, relationship POWATT, GUARD or RESP), and the document of authority.

Errors

StatusWhendiagnostics
401, 403The token is missing or invalid, or the access policy does not allow the interaction.
404No Consent with that id.
412If-Match names a version that is not the current one.Version ID validation failed. Requested versionId W/"999999"; versionId 3927
422The record breaks its profile.The value 'draft' does not match the expected pattern 'active'
422A referenced record does not declare the target profile.Referenced resource Patient/example-member content doesn't conform to any of target profiles: http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
422An HRex Consent without a recognized policy.uri.Invalid slice cardinality 'hrex'. Current count is '0', expected between '1' and 'Infinity'.
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "invalid",
      "diagnostics": "Referenced resource Patient/example-member content doesn't conform to any of target profiles: http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    }
  ]
}

Current limitations

  • The profile canonicals carry no version. Aidbox validates against the versions the deployment has loaded: PDex 2.1.0 and its HRex dependencies.
  • A record carries its PDex or HRex profile only while active. A representative's draft has none until it is approved, and retired or rejected records lose it.
  • The member portal shows only Consents with scope patient-privacy that are either profiled or carry one of the two PDex API purposes, for the plan organization set in Consent Settings or for none.
  • period=<day> without a prefix matches only periods that fit inside that day; use le and ge as above.
  • An opt-in for non-sensitive information only moves no data until sensitive data is labeled: other payers return the member as consent-constrained.

Last updated: