Configuring Exposure Notifications
Define how Exposure Notifications work for a region by assigning server-based key-value pairs.
Overview
The configuration fields listed below define the behavior for Exposure Notifications features such as exposure matching, Exposure Risk Value (ERV) calculation, and messaging for regions managed by a Public Health Authority (PHA). These values can be changed by using the server-to-server API or by contacting Apple to request a change. PHAs that only support Exposure Notifications Express can also change these values by logging into Apple Business Register (ABR).
Some keys are relevant to all Exposure Notifications behavior, while some keys are only used by Exposure Notifications Express. Keys used to display information to users, to customize the user interface, to adjust exposure calculations, and to configure test verification servers are only used by Exposure Notifications Express. The other values are used by both Exposure Notifications Express and Exposure Notifications apps.
Certain keys are marked as Required, and some are also marked Localizable, as noted in bold in the lists below.
For keys marked Required, a PHA must configure these values for a region before it can go live with Exposure Notifications, but you don’t need to include required keys in every server-to-server API request. If a required field already has a valid value, requests only need to include that key when requesting a change to that field.
Using keys marked Localizable, you can provide different values for different languages by appending an underscore followed by the ISO two-letter language code, then another underscore, and then the ISO two-letter country code for the region. For example, to provide a localized value of agencyDisplayName for French-Canadians, use the key agencyDisplayName_FR_CA. When using the server-to-server API, you can provide multiple localized versions of the same key in the same request. In ABR, localizable fields provide a button that allows you to enter additional localized values.
Specify API Version
Exposure Notifications’ APIs are available in two versions. Version 1 requires a client app to function, while Version 2 — available on iOS 13.7 and later — works both with a client app or without an app by using Exposure Notifications Express.
enVersionAn unsigned 8-bit integer that determines whether an app uses version 1 or 2 of the Exposure Notifications framework.
Set Region Information
A PHA can manage more than one region and can configure each region with different values. These values allow you to change region-specific information:
agencyDisplayNameABR Field: PHA Name
Name of the PHA. Used in the single-color header during onboarding, in EN settings and in Exposure Notifications details. Required. Localizable.
regionIdentifierABR Field: Region
A string containing the Mobile Country Code (MCC) in version 1, or the ISO Country Code in version 2.
goLiveDateABR Field: Go Live Date
Date that Exposure Notifications is available for use in this region, specified as seconds since 00:00:00 UTC on January 1, 1970.
agencyRegionNameABR Field: Region (for example, state/province or country)
Name of the region. Required. Localizable.
agencyWebsiteURLABR Field: Agency Website URL
A URL that contains the agency’s website. The system presents this URL to the user in the region’s detail view in the Settings app. Required.
agencyRegionNameABR Field: Region
Name of the region the PHA manages. Used as the subtitle in the onboarding header and in various places in the Settings app. Required.
agencyHeaderStyleABR Field: Header Style
An integer used to customize the appearance of the header used in Exposure Notifications Express when presenting region-specific information to the user. Acceptable values are: 0 for standard appearance with name and icon, 1 for icon-only centered, 2 for icon-only on the left, and 3 for icon-only on the right.
agencyHeaderTextColorABR Field: Text Color
An array of RGB values ranging from 0.0 to 1.0 representing the text color for the text in the header (for example, [1.0, 0.75, 0.75]).
agencyColorABR Field: Header Color
An array of RGB values ranging from 0.0 to 1.0 representing the accent color to use as the background for the PHA-branded header above PHA-provided content (for example, [1.0, 1.0, 0.0]).
agencyImageABR Field: Image URL
The URL of an image file for the agency logo, displayed in the PHA-branded header above PHA-provided content.
agencyMessageABR Field: Message Body
Summary text that appears during onboarding and in settings below the branded header. Required. Localizable.
legalConsentTextABR Field: Legal Consent Text
A string that contains the plain text end-user consent document provided by the PHA. Required. Localizable.
legalConsentVersionABR Field: Legal Consent Version
A string that contains the semantic version or monotonically increasing number of the consent text. Required.
exposureMatchingABR Field: Is exposure matching enabled?
A Boolean that indicates whether the server enables APIs that accept matching temporary exposure key files in that region.
appBundleIdABR Field: App Bundle ID (Optional)
A string that contains the App Store bundle identifier of the app for the given region.
isTestRegionABR Field: Not editable
A Boolean that indicates whether this is a test region.
Set Signing Key
These keys define the security keys used to authenticate requests and sign key archives:
publicKeyABR Field: Public Key
A string that contains the public key used to verify the Temporary Exposure Key (TEK) file signature.
publicKeyVersionABR Field: Public Key Version
A string that contains the version of the public key from the PHA.
Configure Duration Weights
These keys define the attenuation weights that Exposure Notifications Express uses to compute the ERV:
attenuationImmediateWeightABR Field: Attenuation Immediate Weight (0-250%)** **
An unsigned 16-bit integer that contains the immediate attenuation weight.
attenuationNearWeightABR Field: Attenuation Near Weight (0-250%)
An unsigned 16-bit integer that contains the near attenuation weight.
attenuationMedWeightABR Field: Attenuation Medium Weight (0-250%)
An unsigned 16-bit integer that contains the medium attenuation weight.
attenuationOtherWeightABR Field: Attenuation Other Weight (0-250%)
An unsigned 16-bit integer that contains the other attenuation weight.
attenuationImmediateNearThresholdABR Field: Attenuation Immediate Near Threshold (0-255)
An unsigned 8-bit integer that contains the attenuation threshold for immediate to near.
attenuationNearMedThresholdABR Field: Attenuation Immediate Med Threshold (0-255)
An unsigned 8-bit integer that contains the attenuation threshold for near to medium.
attenuationMedFarThresholdABR Field: Attenuation Med Far Threshold (0-255)
An unsigned 8-bit integer that contains the attenuation threshold for medium to far.
Calculate Exposure Risk Values
These keys define weights and thresholds that Exposure Notifications Express uses to compute the ERV:
symptomOnsetToInfectiousnessMapABR Field: Infectiousness to Symptom Onset Map
An unsigned 64-bit integer mapping days since symptoms onset in the Temporary Exposure Key to an infectiousness category. Set the value to one of the following: 00 (drop), 01 (standard infectiousness), 10 (high infectiousness).
infectiousnessStandardWeightABR Field: Infectiousness Standard Weight (0-250%)
An unsigned 16-bit integer that contains the standard infectiousiness weight.
infectiousnessHighWeightABR Field: Infectiousness High Weight (0-250%)
An unsigned 16-bit integer that contains the high infectiousiness weight.
reportTypeConfirmedTestWeightABR Field: Report Type Confirmed Test Weight (0-250%)
An unsigned 16-bit integer that contains the confirmed test report type weight.
reportTypeConfirmedClinicalDiagnosisWeightABR Field: Report Type Confirmed Clinical Diagnosis Weight (0-250%)
An unsigned 16-bit integer that contains the confirmed clinical report type weight.
reportTypeSelfReportWeightABR Field: Report Type Self Report Weight (0-250%)
An unsigned 16-bit integer that contains the self report type weight.
reportTypeNoneMapABR Field: Report Type None Map
An unsigned 8-bit integer that maps the None value to an existing report type.
daysSinceExposureThresholdABR Field: Days Since Exposure Threshold (0-14)
An unsigned 8-bit integer that contains the threshold in days that EN considers history valid. For example, 10 means only the past 10 days of history is valid.
Set Exposure Classifications
These keys define values that set the calculation threshold for customizable exposure classifications in Exposure Notifications Express. A PHA can define up to four classifications. If a PHA creates more than one classification, they will be checked in order, only moving on to the next classification if the threshold is not met.
Replace the trailing X in the key names below with a number from 1 to 4 to specify which classification’s value to change. For example, to change the Exposure Details Body for the second exposure classification, you would use the key exposureDetailsBodyText_2. Setting any threshold field to a value of 0 disables its notification.
exposureDetailsBodyText_XABR Field: Exposure Details Body
A string that contains the body text presented to the user when navigating to their latest exposure details in the Settings app. Required. Localizable.
notificationSubject_XABR Field: Notification Subject
A string that contains the bolded subject of the notification presented to the user when transitioning to this exposure state. The system also presents this as the heading in the Settings app when a user browses to their latest exposure information. Required. Localizable.
notificationBody_XABR Field: Notification Body
A string that contains the body text of the notification presented to the user when transitioning to this exposure state. Required. Localizable.
classificationName_XABR Field: Classification Name
A string that contains the unique name of this classification configuration. This name must change when the thresholds for this classification change. Required.
classificationURL_XABR Field: Classification URL
A URL that contains the link to the PHA’s website for further guidance when the user navigates to their latest exposure details in Settings. Required.
confirmedTestPerDaySumERVThreshold_XABR Field: Confirmed Test Per Day Sum ERV Threshold
A 32-bit integer that contains the confirmed test report type threshold in ERV from when the OS raises a notification.
clinicalDiagnosisPerDaySumERVThreshold_XABR Field: Clinical Diagnosis Per Day Sum ERV Threshold
A 32-bit integer that contains the clinical diagnosis report type threshold in ERV from when the OS raises a notification.
selfReportPerDaySumERVThreshold_XABR Field: Self Report Per Day Sum ERV Threshold
A 32-bit integer that contains the self report type threshold in ERV from when the OS raises a notification.
recursivePerDaySumERVThreshold_XABR Field: Recursive Per Day Sum ERV Threshold
A 32-bit integer that contains the recursive report type threshold in ERV from when the OS raises a notification.
perDaySumERVThreshold_XABR Field: Per Day Sum ERV Threshold
A 32-bit integer that contains the per day sum threshold in ERV from when the OS raises a notification.
perDayMaxERVThreshold_XABR Field: Per Day Max ERV Threshold
A 32-bit integer that contains the per day maximum threshold in ERV from when the OS raises a notification.
weightedDurationAtAttenuationThreshold_XABR Field: Weighted Duration at Attenuation Threshold
A 32-bit integer that contains the threshold in weighted duration-at-attenuation when the OS raises a notification.
Set Exposure Revoked Notifications
These keys define values that set text presented to the user by Exposure Notifications Express upon revocation of an exposure diagnosis:
revokedNotificationBodyABR Field: Notification Body
A string that contains body text of a notification presented to the user when transitioning to a no exposure state due to revocation of a prior exposure. Required.
revokedNotificationSubjectABR Field: Notification Subject
A string that contains a bolded notification presented to the user when transitioning to this exposure state. Required.
revokedDetailsBodyTextABR Field: Revoked Details Body
A string that contains body text presented to the user when navigating to their latest exposure details in the Settings app. Required. Localizable.
revokedURLABR Field: Revoked URL
A URL to the PHA’s website for further guidance when the user navigates to their latest exposure details in the Settings app. Required.
Configure Key Server Information
These keys define values the system uses to interact with your key server.
tekLocalDownloadIndexFileABR Field: TEK Local Download Index File
A URL that contains the TEK download endpoint index file. Required.
tekLocalDownloadBasePathABR Field: TEK Local Download Base Path
A URL that contains the TEK base path. Required.
tekPublishIntervalABR Field: TEK Publish Interval in Hours
An unsigned 8-bit integer that contains how often the PHA expects to update TEK for downloading, specified in hours. Valid values are 2, 4, 8, or 24. Required.
tekUploadURLABR Field: TEK Upload URL
A URL that contains the agency’s upload key server. Required.
Configure Test Verification Server Information
These keys define values used to verify a positive diagnosis before uploading key files to the key server when using Exposure Notifications Express:
testVerificationIntroMessageABR Field: Test Verifiction Intro Message
A string that contains an introductory message from the PHA explaining the purpose of test verification and key upload. Required. Localizable.
verificationCodeLearnMoreURLABR Field: Verification Learn More URL
A URL that contains the PHA’s website where user can learn more about use of cerification codes, and get help if something isn’t working. Required.
testVerificationURLABR Field: Test Verification URL
A URL that contains the agency’s test verification server. Used to exchange valid verification codes for long-term authentication tokens. Required.
testVerificationCertificateURLABR Field: Test Verification Certificate URL
A URL used to retrieve a certificate and per-key metadata for a batch of TEKs before uploading them to the key server. Required.
testVerificationAPIKeyABR Field: Test Verification API Key
An API key, required to talk to the Test Verification server. Required.