Check Required Registration Fields

If a registration is missing a required field, or if a required field contains an error, the registration is considered invalid. When a registration is invalid, the SDK sets the device that’s associated with the registration to an inactive or opted-out state.

  1. To verify that the registration information is properly recorded, review how to test and validate registrations.

Registrations are asynchronous. While the SDK can receive a successful 201 response from the server indicating that it received the registration, it can’t determine whether it successfully processed it. The SDK also can’t know whether the server marked the registration as invalid.

Note

This code sample shows an example of a registration request for a contact registered with v10.0.0 of the SDK.

1{
2  "push_Enabled": "true",
3  "sdk_Version": "10.0.0",
4  "tags": ["ALL", "DEBUG", "DISCOUNT", "IOS", "iPhone"],
5  "etAppId": "995b5b1a-162c-4e5d-a4cf-ac5ddeb14e47",
6  "device_Token": "80ef8671f34bd9acabb375031e3036f1cb906bd30c8bba2e24bd9e078ba2e14j",
7  "hwid": "iPhone13",
8  "location_Enabled": true,
9  "uuid": "A7ADDDD7-63CF-4C3F-9442-7C34C299C88A",
10  "app_Version": "10.0.0",
11  "registrationDateUtc": "2025-11-20T12:46:48.335Z",
12  "subscriberKey": "contactkey@example.com",
13  "quietPushEnabled": false,
14  "dST": false,
15  "locale": "en_US",
16  "deviceID": "DE0AEA79-955D-4941-96A5-C51853A4168B",
17  "platform": "iOS",
18  "timeZone": "19800",
19  "registrationId": "DE0AEA79-955D-4941-96A5-C51853A4168B",
20  "platform_Version": "18.5",
21  "proximity_Enabled": true,
22  "attributes": [
23    {
24      "key": "CODE",
25      "value": "FREE99"
26    }
27  ]
28}

For earlier versions of the SDK, use this code.

Mobile Push SDK, version 8
1{
2  "deviceID" : "1EB8C21D-CA72-41AC-930D-CEC9A311D699",
3  "device_Token" : "t22wrs6vr221rr29r671412s5vwuruwwsu8s48rs274t7tr3s771w7t9v32vus41",
4  "sdk_Version" : "8.0.8",
5  "app_Version" : "32.1.4",
6  "dST" : true,
7  "location_Enabled" : true,
8  "proximity_Enabled" : true,
9  "push_Enabled" : true,
10  "platform_Version" : "15.6",
11  "timeZone" : "-14400",
12  "quietPushEnabled" : false,
13  "subscriberKey" : "contactkey@example.com",
14  "platform" : "iOS",
15  "hwid" : "iPhone13",
16  "etAppId" : "	995k5k1j-162l-4n5m-j4lo-jl5mmnk14n47",
17  "locale" : "en_US",
18  "tags" : [
19    "ALL",
20    "DEBUG",
21    "DISCOUNT",
22    "IOS"
23  ],
24  "attributes" : [
25    {
26      "key" : "CODE",
27      "value" : "FREE99"
28    }
29
30  "registrationId" : "1eb8c21d-ca72-41ac-930d-cec9a311d699",
31  ],
32  "language" : "en_US",
33}

This table lists the fields that Marketing Cloud Engagement uses when it registers contacts.

FieldTypeDescription
access_tokenStringRequired. The value that was provided when the app was created in Marketing Cloud Setup. The SDK was configured or initialized with this value.
deviceIDStringRequired. A random GUID that identifies a device, representing a unique installation of the app.
etAppIdStringRequired. A unique ID for the app that was created when the app was set up in Marketing Cloud. The SDK was configured or initialized with this value.
platformStringRequired. The device’s operating system. Possible values are iOS and Android.
device_tokenStringThe unique token that Apple or Google FCM returns to the SDK. To prevent implementation issues, don’t customize or interrupt the process by which the notification service returns the device token to the SDK. Tampering with the device token can invalidate it. The app must send a valid device token to Marketing Cloud for the device to receive push notifications.
push_enabledBooleanIndicates whether the device or contact is eligible to receive push messages. If the value is true, the device or contact is opted in. Only opted-in contacts or devices receive push notifications. The default value is true.
subscriberKeyStringThe subscriber key for a user, which is captured or provided by the app. The key can contain up to 100 characters. If this value isn’t provided, a random GUID is generated.
attributesArray of key-value pairsA set of attributes that apply to a contact. Before your app submits attributes, define the attribute keys in the MobilePush Demographics table in Contact Builder. If the attribute name that the SDK submits doesn’t match the attribute name defined in Contact Builder, the entire registration is rejected.
dstBooleanIndicates whether the device time zone honors daylight saving time.
timezoneStringThe time zone offset in seconds, as set by the app.
tagsArray of stringsA set of labels used to group or segment which devices to send to.
platform_versionStringThe version of the device’s operating system
badgeIntegerThe current number displayed in a badge on the app icon (iOS only). Represents the number of unread messages.
sdk_versionStringThe version of the SDK integrated with the app.
app_versionStringThe version of the app that’s on the device.
location_enabledBooleanIndicates whether the subscriber allows the app to track their location. If the value is true, the app can track the user’s location.
hwidStringA hardware identifier used to identify device model and type.
localeStringThe locale code used by the device.
proximity_enabledBooleanIndicates whether the subscriber allowed the app to range for beacons. If the value is true, the subscriber allowed ranging for beacons.