Skip to content

Managing App Registrations

Create Application Connection

Create an application connection and initially set the application connection settings.

Usage for Create Application Connection

All application connection settings are optional, the minimal body contains no properties at all. Mobile platform populates default values as needed.

Request for Create Application Connection

URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections

HTTP Method: POST

Request Parameters:

Parameter Type Description
<appid> Mandatory ID that uniquely identifies an application> If an application is configured for anonymous access in the cockpit, the registration is successful even if there are no credentials, or incorrect ones, in the authorization header.
<host:port> Mandatory Host name should match the domain registered with mobile platform. If the requested domain name does not match, a default domain is used.
<service version> Mandatory Version 1 and later.

Request Body Example:

<?xml version='1.0' encoding='utf-8'?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<title type="text"/>
<updated>2014-061-15T02:23:29Z</updated>
<author>
<name/>
</author>
<category term="applications.Connection" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
<content type="application/xml">
<m:properties>
<d:DeviceType>iPhone</d:DeviceType>
<d:DeviceModel m:null="true" />
<d:ApnsDeviceToken m:null="false">18AA4813FB9E6393065BFEDADCDD68173782A42599F3C9E2BF14F990F2D9F096</d:ApnsDeviceToken>
</m:properties>
</content>
</entry>

Response for Create Application Connection

Code Description
201 Created New application connection settings are included in the response body.

Create Application Connection With Capability Handling

Starting with SAP Mobile Services version 1.3 of the connection service, clients can manage form factors and capabilities in the application connections.

During registration, the device sends its form factor (such as smartphone or tablet), and the client can send a certain capability name [such as purchaseOrder-display, or a wildcard (*) in case the device has all the capabilities]. When the device user adds or removes a capability, the application connection is updated.

Application Connection Properties

Describes application connection properties, and indicates whether the properties are read-only or nullable from the HTTP client.

Note

If you attempt to modify a read-only property, the client application throws the following exception: HTTP 403 - The property "XXX" cannot be updated by a client application.

Onboarding Version 1 or Later

Application Connection Properties: Uncategorized

Property Name Description Type Read-only? Is Nullable?
ETag Specifies the version identifier. String Yes No
ApplicationConnectionId ID that uniquely identifies an application. Usually generated by the server and in the format of a GUID. String Yes No

Application Connection Properties: Android Push

Property Name Description Type Read-only? Is Nullable?
AndroidGcmPushEnabled Indicates if Firebase Cloud Messaging (FCM) push notifications are enabled and configured for this application. Boolean No No
AndroidGcmRegistrationId The registration ID that the device acquires from Google during FCM registration. String No Yes
AndroidGcmSenderId FCM sender ID used by mobile services to send notifications. Used by the client to register for FCM. String Yes Yes

Application Connection Properties: Apple Push

Property Name Description Type Read-only? Is Nullable?
ApnsPushEnable Indicates if push notification using APNs is enabled or not. Boolean No No
ApnsDeviceToken The Apple push notification service token. String No Yes

Application Connection Properties: Application Settings

Property Name Description Type Read-only? Is Nullable?
CustomizationBundleId The application configuration (customization resource bundles) associated with the application. String Yes Yes
ApplicationVersion The version number of the registered application. String No Yes
ClientSdkVersion The version number of the SDK for the registered application. String No Yes

Application Connection Properties: BlackBerry Push

Property Name Description Type Read-only? Is Nullable?
BlackberryPushEnabled Indicates if BlackBerry push notifications are enabled and configured for this application. Boolean No No
BlackberryDevicePin Every Blackberry device has a unique permanent PIN. During initial connection and settings exchange, the device sends this information to the server. String No Yes
BlackberryBESListenerPort The listener port for BES notifications. Int32 No No

Application Connection Properties: Windows Push

Property Name Description Type Read-only? Is Nullable?
WnsChannelURI The WNS Channel URI as provided by WNS during push registration. String No Yes
WnsPushEnable Indicates if push notification using WNS is enabled or not. Boolean No No

Application Connection Properties: MPNS Push

Property Name Description Type Read-only? Is Nullable?
MpnsChannelURI The MPNS Channel URI as provided by MPNS during push registration. String No Yes
MpnsPushEnable Indicates if push notification using MPNS is enabled or not. Boolean No No

Application Connection Properties: Capabilities

Property Name Description Type Read-only? Is Nullable?
CapabilitiesPasswordPolicy Updates the password policy for an application connection. Boolean No No

Application Connection Properties: Custom Settings

Property Name Description Type Read-only? Is Nullable?
CustomCustom1 Available for free use. String No Yes
CustomCustom2 Available for free use. String No Yes
CustomCustom3 Available for free use. String No Yes
CustomCustom4 Available for free use. String No Yes

Application Connection Properties: Device Information

Property Name Description Type Read-only? Is Nullable?
DeviceModel The manufacturer of the registered mobile device. String No Yes
DeviceType The type of device. Supported device types are: WinMobile, WinSmartPhone, Windows, iPhone, iPad, iPod, iOS, BlackBerry, Android, Rim6, Windows8, WinPhone8, Windows81, WinPhone81. String No Yes
DeviceSubType The device subtype of the device. String No Yes
DevicePhoneNumber The phone number associated with the registered mobile device. This phone number is used when sending SMS text messages to a device. The phone number must be provided in international format, e.g. “+491712345678” or “+15551231234”. String No Yes
DeviceIMSI The International Mobile Subscriber identity, which is a unique number associated with all Global System for Mobile communication (GSM) and Universal Mobile Telecommunications System (UMTS) network mobile phone users. String No Yes

Application Connection Properties: Password Policy

Property Name Description Type Read-only? Is Nullable?
PasswordPolicyEnabled Specifies whether password policies are enabled. Boolean Yes No
PasswordPolicyDefaultPasswordAllowed Specifies whether default passwords are allowed. Boolean Yes No
PasswordPolicyMinLength Specifies how long the password chosen by the user must be. Int32 Yes No
PasswordPolicyDigitRequired Specifies whether the password must contain digit(s). Boolean Yes No
PasswordPolicyUpperRequired Specifies whether the password must contain uppercase characters. Boolean Yes No
PasswordPolicyLowerRequired Specifies whether the password must contain lowercase characters. Boolean Yes No
PasswordPolicySpecialRequired Specifies whether the password must contain non-alphanumeric characters. Boolean Yes No
PasswordPolicyExpiresInNDays Specifies the number of days the existing password can be used before it must be changed by the user. Int32 Yes No
PasswordPolicyMinUniqueChars Determines how many unique characters must be used in the password. Int32 Yes No
PasswordPolicyLockTimeout Determines how long a successfully unlocked data vault will remain open. When the timeout expires, the vault is locked, and the user must re-enter the vault password to resume using the application. Int32 Yes No
PasswordPolicyRetryLimit Determines how long a successfully unlocked data vault will remain open. When the timeout expires, the vault is locked, and the user must re-enter the vault password to resume using the application. Int32 Yes No

Application Connection Properties: Proxy

Property Name Description Type Read-only? Is Nullable?
ProxyApplicationEndpoint The URL pointing to the EIS. String Yes Yes
ProxyPushEndpoint The SAP Mobile Platform URL for sending out notifications. String Yes Yes

Application Connection Properties: Usage

Property Name Description Type Read-only? Is Nullable?
MaxConnectionWaitTimeForClientUsage Determines how long a connection exists for client usage. Int32 Yes Yes
EnableAppSpecificClientUsageKeys Determines if the application developer can use custom information in Usage Data Collection. Boolean Yes Yes

Application Connection Properties: Log

Property Name Description Type Read-only? Is Nullable?
UploadLogs Specifies whether log upload is enabled for this app and device registration. Boolean Yes Yes
LogEntryExpiry Specifies the maximum time the logs would be kept on the device before they get removed. Int32 Yes Yes

Application Connection Properties

Property Name Description Type Read-only? Is Nullable?
E2ETraceLevel The log level to be used for End 2 End traces. String Yes Yes
PublishedToMobilePlace Determines if the configuration is currently shared through mobile place or not. Boolean Yes Yes
FeatureVectorPolicyAllEnabled Determines if the hybrid capability policy is enabled or not. If enabled then the administrator can select which features to allow to work per application. If disabled all features will work. Boolean Yes Yes

Onboarding Version 3 or Later

Application Connection Properties: Capability

Property Name Description Type Read-only? Is Nullable?
Category The capability category. String Yes No
CapabilityName Name of the capability. String Yes No
ApplicationConnectionId ID that uniquely identifies an application. String Yes No
CapabilityValue Value of the capability. String Yes Yes

Application Connection Property: Form

Property Name Description Type Read-only? Is Nullable?
FormFactor The form factor of the device. Mostly used in combination with Capability based push. String Yes No

Onboarding Version 4 or Later

Application Connection Property: UserName

Property Name Description Type Read-only? Is Nullable?
UserName Specifies the user name that was used during registration String Yes No

Application Connection Property: Application Settings

Property Name Description Type Read-only? Is Nullable?
UserLocale Specifies the users preferred language. String No Yes
TimeZone Specifies the time zone. String No Yes
LastKnownLocation Specifies last known location of the app sent to the server. String No Yes
CreatedAt Indicates the time the application was created. DateTime Yes No
PushGroup Custom field to specify a target audience for push information. String No Yes
Email Users email address. String No Yes

Manage Application Settings

Application settings describe the application connection details such as application ID, security configuration, and customization resource.

Get Application Settings

Retrieve application settings for the application connection.

Usage for Get Application Settings

You can retrieve application settings by either explicitly specifying the application connection ID, or by having the application connection ID determined from the call context (that is, from either the X-SMP-APPCID cookie or X-SMP-APPCID HTTP header, if specified). On the first call, you can simplify your client application code by having the application connection ID determined from the call context.

Request for Get Application Settings

URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections(‘<appcid>’)

HTTP Method: GET

Request Parameters:

Parameter Type Description
<appid> Mandatory ID that uniquely identifies an application
<appcid> Mandatory The connection ID of the application instance interacting with the service
<service version> Mandatory Version 1 and later
<user_name> Optional (read-only) Version 4 and later

Request Header Example:

GET /odata/applications/v1/com.sap.myapp/Connections('b6d50e93-bcaa-439d-9741-660a3cb56771') HTTP/1.1
Cookie: X-SMP-APPCID=<XXXX>; X-SMP-SESSID=<XXXX>
Host: smpserver:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.3 (java 1.5)
Authorization: Basic <XXXX>

Response for Get Application Settings

Code Description
200 OK Returns service document

Response Body Example:

<?xml version="1.0" encoding="UTF-8"?>
<entry xml:base="http://10.53.138.170:8080/odata/applications/latest/G3T/"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<id>http://10.53.138.170:8080/odata/applications/latest/G3T/Connections<XXXX></id>
<title type="text"/>
<category scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" term="applications.Connection"/>
<content type="application/xml">
<m:properties>
 <d:ETag>2013-11-07 14:44:43.0</d:ETag><d:ApplicationConnectionId>xxxx</d:ApplicationConnectionId>
 <d:AndroidGcmPushEnabled m:type="Edm.Boolean">false</d:AndroidGcmPushEnabled>
 <d:AndroidGcmRegistrationId m:null="true"/><d:AndroidGcmSenderId/>
 <d:ApnsPushEnable m:type="Edm.Boolean">true</d:ApnsPushEnable>
 <d:ApnsDeviceToken m:null="true"/>
 <d:MpnsPushEnable m:type="Edm.Boolean">true</d:MpnsPushEnable>
<d:ProxyApplicationEndpoint>http://vmw3815.wdf.sap.corp:50009/sap/opu/sdata/iwfnd/RMTSAMPLEFLIGHT/</d:ProxyApplicationEndpoint>
<d:ProxyPushEndpoint>http://INLC50802847A:8080/Notification</d:ProxyPushEndpoint>
<d:UploadLogs>false</d:UploadLogs>
<d:WnsChannelURI m:null="true"/>
<d:WnsPushEnable m:type="Edm.Boolean">false</d:WnsPushEnable>
</m:properties>
</content>
</entry>

Get Application Property Settings

Get the specific property value for a property from the application settings.

Request for Get Application Property Settings

URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections(‘<registrationID>’)/<property-name>

HTTP Method: GET

Request Parameters:

Parameter Type Description
<appid> Mandatory ID that uniquely identifies an application
<registrationID> Mandatory The registration ID of the application instance that is interacting with the service
<property-name> Mandatory The property name can be appended to the URL to retrieve the value of a specific property
<service version> Mandatory Version 1 and later

Request Header Example:

GET /odata/applications/v1/com.sap.myapp/Connections('b6d50e93-bcaa-439d-9741-660a3cb56771')/DeviceType HTTP/1.1
Cookie: X-SMP-APPCID=b6d50e93-bcaa-439d-9741-660a3cb56771; X-SMP-SESSID=97ts80gwhxkc  
Host: smpserver:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.3 (java 1.5)
Authorization: Basic REVWMDAwMTppbml0aWFs

Response for Get Application Property Settings

Code Description
200 OK Returns service document

Update Application Settings

Update the application settings with the properties in the request.

Usage Information

Condition For Service Versions Use HTTP Operation Properties
To replace an entity Version 1 and later PUT Add complete entity in the payload
To patch individual property within an entity Version 1 and later POST Add header X-HTTP-METHOD:MERGE`` and enter the properties to patch in the payload
Version 1 and later PATCH Enter the properties to patch in the payload

Request for Update Application Settings

URL: https://<mobile services host>/[public/]odata/applications/<service version>/<appid>/Connections(‘<registrationID>':<Version>]

HTTP Method: PUT

Request Parameters:

Parameter Type Description
<appid> Mandatory The application ID that uniquely identifies the application
<registrationID> Mandatory The registrationID of the application instance that is interacting with the service
<service version> Mandatory Version 1 and later

Request Header Example:

PUT /odata/applications/v1/com.sap.myapp/Connections('<XXXX>') HTTP/1.1
Cookie: X-SMP-APPCID=<XXXX>; X-SMP-SESSID=<XXXX>  
Content-Length: 4744
Content-Type: application/atom+xml; charset=UTF-8
Host: smpserver:8080
Authorization: Basic <XXXX>

Response for Update Application Settings

Code Description
200 No application connection entity
404 Not explicitly registered the client

Delete Application Connection

Delete an application connection.

Request for Delete Application Connection

URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections(‘<appcid>’)

HTTP Method: HTTP DELETE

Request Parameters:

Parameter Type Description
<appid> Mandatory ID that uniquely identifies an application
<appcid> Mandatory The connection ID of the application instance interacting with the service
<service version> Mandatory Version 1 and later

Request Header Example:

DELETE /odata/applications/v1/com.sap.myapp/Connections('b6d50e93-bcaa-439d-9741-660a3cb56771') HTTP/1.1
Cookie: X-SMP-APPCID=<XXXX>
Host: smpserver:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.3 (java 1.5)
Authorization: Basic <XXXX>

Response for Delete Application Connection

Code Description
200 OK Returns service document
404 Explicitly not registered client

Revoke User Token

Revoke all tokens registered to a specific user for an application, from the back-end server.

Request for Revoke User Token

URL: [<application-service-host>/mobileservices/service-key/odata/applications/user/<user-name>/updateRevokeTime|<application-service-host>/mobileservices/service-key/odata/applications/user/<user-name>/updateRevokeTime]

HTTP Method: HTTP PATCH

Request Parameters:

Parameter Type Description
<application-service-host> Mandatory The server that hosts the application.
<user-name> Mandatory The specific user name or identifier for which you want to revoke tokens.

HTTP Header: X-API-Key = {service key}

Service key format example: 7d5e81512b5c6f371113a73d395913e7ba8732440ac0a1f1f81833ff1dea53a5

To create a service key, see Service Keys.

1
2
3
!!! note "Note"

    When you create a new service key under the Mobile Settings Exchange feature, please choose the `revoke_user_token` role. If a user can get the service key, he or she can call the back-end API to revoke a user's token.

Response for Revoke User Token

Code Description
200 Revoke specific user token success
404 Not found specific user registration
500 Server internal error

Last update: December 21, 2023