Beruflich Dokumente
Kultur Dokumente
Contents
1 2 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 3.2.1 3.2.2 3.3 3.4 3.5 3.6 3.7 4 4.1 4.2 5 5.1 5.2 6 6.1 6.2 7 7.1 7.1.1 Introduction ................................ ................................ ................................ ................................ 4 Text SMS based integration ................................ ................................ ................................ ....... 5 Text Content Delivery Flow ................................ ................................ ................................ ....... 5 Content delivery for the message send by customer ................................ ................................ .... 5 Content is not available for the message send by customer ................................ .......................... 6 Invalid message send by customer ................................ ................................ ............................. 6 CP Application down ................................ ................................ ................................ ................ 6 Delivery Report................................ ................................ ................................ ......................... 6 TriggerDelivery ................................ ................................ ................................ ......................... 6 sendSMS ................................ ................................ ................................ ................................ .9 notifySMSDeliveryReceipt ................................ ................................ ................................ ...... 12 getIMEI ................................ ................................ ................................ ................................ .. 13 Binary SMS based integration ................................ ................................ ................................ . 15 Binary Content delivery for message send by customer ................................ .......................... 15 Binary Content is not available for message send by customer ................................ ............... 15 Invalid message send by customer ................................ ................................ ........................... 15 CP Application down ................................ ................................ ................................ .............. 15 Delivery Report................................ ................................ ................................ ....................... 15 TriggerDelivery ................................ ................................ ................................ ....................... 15 sendBinarySMS ................................ ................................ ................................ ...................... 16 notifySMSDeliveryReceipt ................................ ................................ ................................ ...... 19 getIMEI ................................ ................................ ................................ ................................ .. 19 Subscription based integration ................................ ................................ ............................... 20 NotifySubscription ................................ ................................ ................................ .................. 20 sendSMS ................................ ................................ ................................ ............................... 27 CP WAP Portal integration ................................ ................................ ................................ ....... 32 chargeAmount ................................ ................................ ................................ ........................ 32 refundAmount ................................ ................................ ................................ ......................... 37 Content Delivery via WAP PUSH UR L ................................ ................................ ..................... 40 chargeAmount ................................ ................................ ................................ ........................ 40 refundAmount ................................ ................................ ................................ ......................... 40 SMS to MMS integration ................................ ................................ ................................ .......... 40 MMS Content Delivery F low ................................ ................................ ................................ ... 40 Content delivery for the message send by customer ................................ ................................ .. 40
Confidential
Page 2 of 59
Confidential
Page 3 of 59
1 Introduction
This document describes the Interface specifications of SDP for External Content Partners. It is intended as a guide for implementation team of content partner to develop and deploy the interface. It covers the Integration technicalities involved in Charging and Delivering the content to the end user over SMS P2A, Subscription and WAP. Our Integration Process works on the following key aspects: Single point centralized integration with SDP over web services (http based) for c harging as well as delivery Single billing methodology Billing is done at time of SMS / WAP delivery to the users handset. Thus MT Based billing is offered to the customer Subscription services are centrally managed at SDP. Entire Charging, renewal, SMS Notification is taken care at SDP end. Only the SMS scheduling is handled at Content Partners end.
Few Benefits of this approach is as follows: No need to maintain multiple connections and interfaces Flexibility in charging specially for the SMS (differential charging possible on same short-code) One-time integration, resulting in faster implementation of business requirements
Confidential
Page 4 of 59
If request is valid and the CP has content, CP should call SendSMS API to send the text content to the user. Charging Info and DeliveryReceipt is embedded in SendSMS API in such case. In case of SendSMS failure, CP checks for error description in response body returned by SDP.
Confidential
Page 5 of 59
2.1.2
If request is valid and CP does not have content for such keyword, CP will send failure message as Sorry! We are unable to process your request at this moment. Please try again after some time. Thank You to the customer by calling SendSMS API. In this case, SendSMS API will not have charging Info and DeliveryReceipt embedded in it.
2.1.3
If the value of input parameter ContentID of trigger delivery URL is invalid in request, CP will return response code 200 to SDP and sends a help message Invalid keyword, Please enter correct keyword to the customer without charging Info and DeliveryReceipt. 2.1.4 CP Application down If CP returns error code 101 to SDP due to his service failure in the response of Trigger Delivery call, SDP sends a service message like Sorry! We are unable to process your request at this moment. Please try again after some time. Thank You to the subscriber
2.3 TriggerDelivery
Description: This API is invoked by SDP to trigger delivery of a content reques ted by customer (pull based delivery). Upon receiving this trigger, CP validates the request and sends response code in HTTP response. If request is valid then CP send text content via sendSMS API. The base URL of this API is expected to be provided by External CP which hosts the content and controls the delivery. Detail of the API specs. HTTP Method: Get URI: https://<cphost>:<port>/Resource?ShortCode=xxx&Keyword=&sI d=XYZ&TransactionID=ttt& ContentID=ABC&imei=1234
Example URL: Customer (9059134436) sends: PNR 67636235353 to short code 44444, SDP calls below
Confidential
Page 6 of 59
Consumer : Service Delivery Platform Request body: NONE Request headers: NONE Content Type : Text/HTML Response Body: Contains one of the below response code. Response codes: o o o o 200 Ok 101 Operation Failed 250 Invalid Parameter 223 Invalid Short Code
Note: Content Partner should return above response code (Integer value) in Http response body Input Data Short Code Data Type String Mandatory Mandatory Description Short Code to which Customer has send request to pull the content. Short code will be prefix with tel: e.g. tel:44444 Keyword String Conditional The value of this filed shall be blank. Not required for off deck partners. Message sends by the Customer to pull the content. E.G. PNR 67636235353 TransactionID String Mandatory Unique ID that can be used to corelates CDR/EDR in SDP with that same generated in External CP as a result of this delivery. The same ID is expected to be returned by the CP at the time of content delivery and/or charging through SDP. E.g. 121212121212
ContentID
String
Mandatory
Confidential
Page 7 of 59
Mandatory Mandatory
Confidential
Page 8 of 59
2.4 sendSMS
Description: Request to send a text message to a destination address Note: SDP will share sample code for this API Detail of the API specs. HTTP Method: Post URI: https://host:port/rest/sms/messages Consumer : External Content Provider Request Content Type: multipart/form-data Response Content Type: application/json Request headers: HTTP Basic Credentials
base64 [4] encoding of <application id> : <application instance password> Response Header: Contains one of the below response codes. o o 2xx OK 5xx internal server error
Response Body: Contains one of the below error code. Error Codes: o o SVC0001 Service error PLG-000004 Matching plug-in cannot be found because, for example, route has not been set up SMS-000001 Unable to perform action. Network error SMS-000005 GSM message format incorrect SVC0002 Invalid input value SVC0004 No valid addresses
o o o o
Confidential
Page 9 of 59
Mandatory Mandatory
Description Destination address for the Message send by SDP in sId field of trigger delivery. Example: tel:9059011453 Text content to be sent by CP Short-code of the sender of SMS. It accepts value with prefix tel: or without prefix. E.g. : tel:44444 Charging to apply to this message.
Code
String
Optional
Optional
additional information about the charge: Example: charging for text content Currency identifier as defined in ISO 4217 [9] Example INR Amount to be charged Example: 3.0 Refer Section List of Charge Codes 9.4 Charging code, Example: code3 Refer Section List of Charge Codes 9.4 This information is used for Delivery Report.
Mandatory
Endpoint address <CP URL> to get SMS Delivery Report if message not delivered to customer: Example:https://CP_URL/SMSDelivery Name of interface notifySmsDeliveryReceipt Correlation information. Use same value as transaction ID.
interfaceName Correlator
String String
Mandatory Mandatory
Confidential
Page 10 of 59
Mandatory Mandatory
String
Mandatory
String
Mandatory
contentType
String
Mandatory
cpID senderMSISDN
String String
Mandatory Mandatory
PPL_FLAG contentName
String String
Mandatory Mandatory
channelType isRated
isLowBalMsgR equired
Use same Transaction Id send by SDP in trigger delivery URL. Maximum Length can be 20 There should be unique service ID for each keyword. Service ID should be same for subscription and on demand keywords if keywords are of same category CP can set a default value as A. Original content owner id in case content is owned by some other Content Provider. E.g. T-Series Maximum Length can be 10 Content id if available as part of meta data CP can set a default value as A. Maximum Length can be 50 Content type: Text Premium SMS (If SMS is charged more than Rs 3 ) Unique identifier of content provider. SDP shares CPID value. Short code or Long code of CP without any prefix. Example: 44444. Maximum Length can be 10 If CP has copy right of the content then value will be TRUE else FALSE The possible values are TRUE/FALSE Name of the content Maximum Length can be 200 CP can set a default value as A. CP should set a default value as SMS. CP will send this value as No CP will put the value as True Description The request status and identifier.
Mandatory Mandatory
Note: SDP does not support any Special character in the Tunnel Parameters as these values are used for CDR generation. The Content Partner must note that any character like Pipe (|) comma (,) semicolon (;) and colon (:) is not passed in the parameter value.
Confidential
Page 11 of 59
2.5 notifySMSDeliveryReceipt
Description: This API is invoked by SDP to deliver the SMS delivery Report to content partner only if content was not delivered to customers HS. Detail of the API specs. HTTP Method: URI: https://CP_URL/SMSDelivery?Correlator=&DeliveryStatus= &Address=
Example:
Confidential
Page 12 of 59
Consumer : Service Delivery Platform Request Content Type: Request headers: HTTP Basic Credentials
base64 [4] encoding of <application id> : <application instance password> Response Codes: Data Type String Mandatory Mandatory Description This correlator was provided by the application in sendSMS/sendBinary API call MSISDN of the Subscriber requesting the content/service. It lists the variations on the delivery status of the SMS to a terminal. Possible values are: o DeliveryImpossible
Mandatory Mandatory
2.6 getIMEI
Description: This API is used to get the IMEI number for a particular MSISDN
Detail of the API specs. Method: POST URI: https://host:port/rest/CustomDeviceManagement/CustomDeviceManagement/getIMEIByMSISDN Consumer : External Content Providers Request body: Contains the values for the input parameters mentioned below. Request headers: base64 [4] encoding of <application id> : <application instance password> Content Type : Text/XML Remote Method Name: getIMEI
Response Header: Contains one of the below response codes. o o 201 OK 500 Error
Confidential
Page 13 of 59
Description MSISDN of Customer for which IMEI is requested Set to false if masked MSISDN is not used. Description The error code or success code for the Request. IMEI number of the corresponding MSISDN
Confidential
Page 14 of 59
3.4 TriggerDelivery
Please refer section 2.3
Confidential
Page 15 of 59
3.5 sendBinarySMS
Description: This API allows an application to send a binary SMS to customer. This API supports following binary contents: Operator Logos Picture messages Ringtones WAP Push URL (After sending this URL, refer section 5)
Note: SDP will share sample code for these API Detail of the API specs. HTTP Method: Post URI: http://host:port/rest/binary_sms/messages Consumer : External Content Provider Request Content Type: application/json Request headers: HTTP Basic Credentials
base64 [4] encoding of <application id> : <application instance password> Response Header: Contains one of the below response codes. o o 2xx OK 5xx internal server error
Response Body: Contains one of the below error code. Error Codes: o o o SVC0001 Service error SVC0002 Invalid input value PLG-000004 Matching plug-in cannot be found because, for example, route has not been set up SMS-000001 Unable to perform action. Network error SMS-000005 GSM message format incorrect SVC0004 No valid addresses
o o o
Confidential
Page 16 of 59
Mandatory Mandatory
Description Destination address for the Message send by SDP in sId field of trigger delivery. Example: tel:9059011453 Binary message to be sent. Binary message comprises of base64 encoded message and UDH. An UDH value differs as content wise. Actual UDH values for binary contents shall provide in sample client code. CP will set default value as 4 Short code of sender. It accepts value with prefix tel: or without prefix. E.g. tel:44444 Validity period of message Protocol Id Charging to apply to this message.
binaryMessag e
BinaryMessag e []
Mandatory
Dcs senderName
Byte String
Mandatory Optional
SimpleReferen ce
Conditional
additional information about the charge: Example: charging for text content Currency identifier as defined in ISO 4217 [9] Example INR Amount to be charged Example: 3.0 Charging code, Example: code3 for Picture Message and Logo code7 for Ringtone This information is used for Delivery Report.
URI
Mandatory
Endpoint address <CP URL> to get SMS Delivery Report if message not delivered to customer: Example: http://CP_URL/SMSDelivery Name of interface notifySmsDeliveryReceipt Correlation information. Use same value as transaction ID.
interfaceNam e Correlator
String String
Mandatory Mandatory
Confidential
Page 17 of 59
Mandatory Mandatory
String
Mandatory
String
Mandatory
contentType
String
Mandatory
Same Transaction Id sent by SDP in trigger delivery URL. Maximum Length can be 20 There should be unique service ID for each keyword. Service ID should be same for subscription and on demand keywords if keywords are of same category CP can set a default value as A. Original content owner id in case content is owned by some other Content Provider Maximum Length can be 10 Content id of ringtone, logo and picture message CP can set a default value as A if content ID is not applicable Maximum Length can be 20 Content type:
PictureMsg for picture message Logo for operator logo Monotones for ringtone
CpID SenderMSISDN
String String
Mandatory Mandatory
PPL_FLAG contentName
String String
Mandatory Mandatory
channelType isRated
isLowBalMsgR equired
Unique identifier of content provider. SDP shares CPID value. Short code or Long code of CP without any prefix. Example: 44444 Maximum Length can be 10 If CP has copy right of the content then value will be TRUE else FALSE The possible values are TRUE/FALSE Content Name of ringtone(e.g. Maa Tujhe Salaam) , logo (e.g. Om) and picture message (e.g. lovely eyes) Maximum Length can be 50 CP can set a default value as A if content ID is not applicable CP should set a default value as SMS. CP will send this value as No CP will put the value as True Description The request status and identifier.
Mandatory Mandatory
Note: SDP does not support any Special character in the Tunnel Parameters as these values are used for CDR generation. The Content Partner must note that any character like Pipe (|) comma (,) semicolon (;) and colon (:) is not passed in the parameter value.
Confidential
Page 18 of 59
Request Header: base64 [4] encoding of <application instance id> : <application instance password> Request Body: { "addresses": ["URI"], "binaryMessage": [{ "message": "base64Binary", "udh": "base64Binary" }], "dcs": "Byte", "charging": { "description": "String", "amount": "BigDecimal", "code": "String", "currency": "String" }, "protocolId": "Byte", "receiptRequest": { "correlator": "String", "endpoint": "URI", "interfaceName": "String" }, "senderName": "String", "validityPeriod": "String" } Response Body: {"result": "String"} Error Response: [Serivce Exceptions/Policy Exceptions] Service Exception {"error":{ "type":"org.csapi.schema.parlayx.common.v3_1.ServiceException" "message":"String" }} Policy {"error":{ "type":"org.csapi.schema.parlayx.common.v3_1.PolicyException" "message":"String" }}
3.6 notifySMSDeliveryReceipt
Please refer section 2.5
3.7 getIMEI
Please refer section 2.6
Confidential
Page 19 of 59
4.1 NotifySubscription
Description: This API is invoked by Subscription engine to notify external content partner about subscriptions/un-subscriptions/renewals to a product. This API is expected to be provided by External CP who would like to get notified about any subscription to the services offered by them. Detail of the API specs. HTTP Method: GET URI: https://<cphost>:<port>/<ResourceName>?ProductName=<ProductName>&ServiceName=<ServiceName>&SID =<MSISDN>&NotifyType=<Type>&AmountCharged=<0.0>&SubscriptionValidity=<4 >
Confidential
Page 20 of 59
Consumer : Service Delivery Platform Request body: Contains the values for the input parameters mentioned below. Request headers: base64 [4] encoding of any authentication parameters provided by Content Provider Content Type : Text/HTML Response Body: Contains one of the below response code. Response codes: o o o o o o 200 Ok 101 Operation Failed 219 Invalid product Name 220 Invalid Service Name 260 Unknown customer 250 Invalid Parameter
Note: Content Partner should return above response code (Integer value) in Http response body
Confidential
Page 21 of 59
Mandatory Mandatory
Description Name of the Subscription Product to which Customer has subscribed/unsubscribed. Service offered by this CMS/External CP which is part of this Product. Service Name will be shared with CP when Service offered by CP is configured in SDP. 10 digits MSISDN. Indicates whether this notify is for subscription, un-subscription or renewal. Possible Values: o Subscribe. o Unsubscribe. o Renew o Validate o Grace o Parking o ChangeMSISDN
ServiceName
String
Mandatory
SID NotifyType
String String
Mandatory Mandatory
Confidential
Page 22 of 59
SID SubID ServiceName AmountCharged ProductName SubscriptionValidity ChannelType ExtTxId ExpiryDate ServiceAttribute
ServiceAttribute=<ServiceData>
Confidential
Page 23 of 59
URI: http://<cphost>:<port>/<Resour ceName>?NotifyType=Renew&SI D=<SID>&SubID=<SubID>&Servic eName=<ServiceName>&Amoun tCharged=<AmountCharged>&Pr oductName=<ProductName>&Su bscriptionValidity=<Subscription Validity>&ExpiryDate=<dd-mmyy hh:mm AM/PM>
Confidential
Page 24 of 59
Name>&ProductName=<Product Name>
Confidential
Page 25 of 59
Name>&ProductName=<Product Name>
Confidential
Page 26 of 59
Service Attribute
String
Optional
AmountCharged
Double
Conditional
SubscriptionValidity
Integer
Conditional
Mandatory Mandatory
4.2 sendSMS
Description: Request to send a alert message to a subscribed user Note: SDP will share sample code for this API Detail of the API specs. HTTP Method: Post URI: https://host:port/rest/sms/messages
Confidential
Page 27 of 59
base64 [4] encoding of <application id> : <application instance password> Response Header: Contains one of the below response codes. o o 2xx OK 5xx internal server error
Response Body: Contains one of the below error code. Error Codes: o o o o o o SVC0001 Service error PLG-00004 - No Active node found SMS-000001 SMSC request timeout SMS-000005 - GSM message format incorrect SVC0002 Invalid input value SVC0004 No valid addresses Data Type Mandatory Description
Input Data
Confidential
Page 28 of 59
Message senderName
String String
Mandatory Optional
ChargingInfor mation
Optional
additional information about the charge: Example: 0 amount charging for alert content Currency identifier as defined in ISO 4217 [9] Example INR Amount to be charged Example: 0.0 Charging code Example: code0
Tunnel Parameters
Confidential
Page 29 of 59
String
Mandatory
String
Mandatory
String String
Mandatory Mandatory
channelType isRated
isLowBalMsg Required
Mandatory Mandatory
Note: SDP does not support any Special character in the Tunnel Parameters as these values are used for CDR generation. The Content Partner must note that any character like Pipe (|) comma (,) semicolon (;) and colon (:) is not passed in the parameter value.
Confidential
Page 30 of 59
Confidential
Page 31 of 59
ii.
5.1 chargeAmount
Description: This operation results in directly charging to the account indicated by the end user identifier. The charge is specified as a Charging Information data structure, consisting of information on the amount to be charged and a description. The reference code contains extra parameters required by SDP. It is the calling application's responsibility to provide a unique transaction id (in reference code field, as described below) within the scope of the application. This transaction id should be unique for all charging requests Detail of the API specs. HTTP Method: Post URI: https://host:port/rest/payment/charge-amount Consumer : External Content Provider Request Content Type: application/json Request headers: HTTP Basic Credentials
base64 [4] encoding of <application id> : <application instance password> Response Codes: o o o o o SVC0001 Service error (Permanent error, Retry with same transaction ID) CRG002 Insufficient balance SVC0002 Invalid input value CRG0004: Duplicate transaction ID. Charging already done (No Retry from client application) CRG0003 Charging was successful with same transaction ID in earlier transaction. Treat as success response
Confidential
Page 32 of 59
Confidential
Page 33 of 59
Description The end user's account to be charged. It will be the MSISDN (sId). Example:- tel:9059876763 This will be a key value pair containing below information namely transactionId , serviced, origContentOwnerId contented, contentType, senderMSISDN contentName , channelType, isRated PPL_Flag, cpID, eventType Unique Transaction Id to be generated by Content Providers Maximum Length can be 20 There should be defined service ID for each keyword. Service ID should be same for subscription and on demand keywords if keywords are of same category. CP can set a default value as A. Original content owner id in case content is owned by some other Content Provider Maximum Length can be 10 ID of the content. Maximum Length can be 50 Content type (wallpaper, Polytone, TrueTone, Coloredlogo, Games, Videos, MCard, Animation, Theme, MP3) Short code or Long code of CP. This field accepts only digits. No prefix is required. E.g. 44444 Maximum Length can be 10 Content Name of Polytone(e.g. Maa Tujhe Salaam) , wallpaper (e.g. Om), Games (e.g. Run for nation) etc. CP can set a default value as A if content ID is not applicable Maximum Length can be 200 Channel on which the request came for delivery. E.g : WAP CP will send this value as No PPL_FLAG indicator which indicates if the content Provider for the content is PPL or Non PPL Content Partners. This flag will be used for revenue settlement, If Revenue share rates are linked to PPL and Non PPL content. The possible values are TRUE/FALSE
transactionId serviceId
String String
Mandatory Mandatory
String
Optional
contentName
String
Mandatory
cpID
String
Mandatory
Unique identifier of content provider. In case CP is not an aggregator/application provider by itself and there is a revenue share agreement with the aggregator/application provider with UWL then CP must send the CPID along with Aggregator / Application Provider ID as part of the CPID parameter delimited by a :. E.g. CPID:AGGRID
Confidential
Page 34 of 59
eventType
String
Optional
eventType indicates if the Charging event triggered is for Subscription purchase ( News Subscription, CRBT Subscription etc ) or service consumption ( e.g. Song Change, Content download etc). Possible Values: subscription consumption
If the charging is done for any subscription request, set this attribute to subscription. If the charging is done for any service consumption , set this attribute to consumption If this attribute is not provided in the Refcode, the it shall be considered as Consumption by default. Charge ChargingInfor mation: Description ChargingInfor mation Mandatory Information on the charge to be made. ChargingInformation structure is described below.
String
Mandatory
Include the (SMS) text that needs to be send to the Subscriber upon successful charging. SDP appends charging information to the text provided by CP/VAS-P and sends an SMS to the subscriber. If no text is provided in this field, no SMS will be sending. Currency identifier as defined in ISO 4217 [9] Example: INR Amount to be charged Example: 7.0 Charging code. Example: code7 Data Type Mandatory Description None N/A N/A
Note: SDP does not support any Special character in the Tunnel Parameters as these values are used for CDR generation. The Content Partner must note that any character like Pipe (|) comma (,) semicolon (;) and colon (:) is not passed in the parameter value.
JSON Sample Structure
Request Body: { "charge": { "description": "String", <Text to be used for information > "amount": "BigDecimal", <The amount to be charged> "code": "String", <A charging code, from an existing contractual description> "currency": "String" <A currency identifier as defined in ISO 4217 [9]> },
Confidential
Page 35 of 59
Confidential
Page 36 of 59
5.2 refundAmount
Description: This operation results in directly applying a refund to the account indicated by the end user identifier. The refund is specified as a currency amount. The reference code to contain extra parameters required by SDP. The reference code contains transactionId field which is expected to be same which is passed in the chargeAmount API. Detail of the API specs. HTTP Method: Post URI: https://host:port/rest/payment/refund-amount Consumer : External Content Provider/VAS Platforms Request Content Type: application/json Request headers: HTTP Basic Credentials
base64 [4] encoding of <application id> : <application instance password> Response Header: Contains one of the below response codes. o o 2xx OK 5xx internal server error
Response Body: Contains one of the below error code. Error codes: errorcode: <One of the Error codes below> o o o o SVC004 Invalid Customer SVC0001 Service error (Permanent error, Retry with same transaction ID) CRG0004: Duplicate transaction ID. Refund already done (No Retry from client application) CRG0003 Refund was successful with same transaction ID in earlier transaction. Consider it as success response CRG0005 Refund invoked while charging was not done for the transaction ID SVC0002 Invalid input value SVC0007 Invalid charging information SVC0270 Refund failed. POL0001 Policy error [Faults related to policies associated with the service]
o o o o o
Confidential
Page 37 of 59
Description The end user's account to be charged. It will be the MSISDN (sId). Example:- tel:9059876763 This will be a key value pair containing below information namely transactionId , serviced, origContentOwnerId contented, contentType, senderMSISDN contentName , channelType, isRated PPL_Flag, cpID Same Transaction Id used in charge amount for such content. Maximum Length can be 20 There should be defined service ID for each keyword. Service ID should be same for subscription and on demand keywords if keywords are of same category. CP can set a default value as A. Original content owner id in case content is owned by some other Content Provider Maximum Length can be 10 ID of the content. Maximum Length can be 50 Content type (wallpaper, Polytone, TrueTone, Coloredlogo, Games, Videos, MCard, Animation, Theme, MP3) Short code or Long code of CP. This field accepts only digits. E.g. 44444 Maximum Length can be 10 Content Name of Polytone(e.g. Maa Tujhe Salaam) , wallpaper (e.g. Om), Games (e.g. Run for nation) etc. CP can set a default value as A if content ID is not applicable Maximum Length can be 200 Channel on which the request came for delivery. E.g : WAP CP will send this value as No PPL_FLAG indicator which indicates if the content Provider for the content is PPL or Non PPL Content Partners. This flag will be used for revenue settlement, If Revenue share rates are linked to PPL and Non PPL content. The possible values are TRUE/FALSE
transactionId serviceId
String String
Mandatory Mandatory
String
Optional
String
Mandatory
cpID
String
Mandatory
Unique identifier of content provider. In case CP is not an aggregator/application provider by itself and there is a revenue share agreement with the aggregator/application provider with UWL then CP must send the CPID along with Aggregator / Application Provider ID as part of the CPID parameter delimited by a :. E.g. CPID:AGGRID
Confidential
Page 38 of 59
ChargingInfor mation
Mandatory
String
Mandatory
Include the (SMS) text that needs to be send to the Subscriber upon successful charging. SDP appends charging information to the text provided by CP/VAS-P and sends an SMS to the subscriber. If no text is provided in this field, no SMS will be sending. Currency identifier as defined in ISO 4217 [9] Example: INR Amount to be charged Example: 7.0 Charging code. Example: code7 Data Type Mandatory Description None N/A N/A
Note: SDP does not support any Special character in the Tunnel Parameters as these values are used for C DR generation. The Content Partner must note that any character like Pipe (|) comma (,) semicolon (;) and colon (:) is not passed in the parameter value.
Request Body: { "charge": { "description": "String", <Text to be used for information and billing> "amount": "BigDecimal", <The amount to be refunded> "code": "String", <A charging code, from an existing contractual description> "currency": "String" ,<A currency identifier as defined in ISO 4217 [9]> }, "endUserIdentifier": "URI",<The address of the end-user to be refunded to> "referenceCode": transactionId:< Unique transaction id> ; serviceId:< Service identifier for the content sent>;origContentOwnerId:< Original content owner id>; contentId: <Content id>;contentType:<Content type>; senderMSISDN:<short code or long code of CP>; contentName:<content name>; channelType:<Channel which has made request>; isRated:<Yes or No>;PPL_FLAG:<PPL_FLAG>;cpID:<CP Id> } Response Body: None Error Response: [Service Exceptions/Policy Exceptions] Service Exception {"error":{ "type":"org.csapi.schema.parlayx.common.v3_1.ServiceException" "message":"String" }} Policy {"error":{ "type":"org.csapi.schema.parlayx.common.v3_1.PolicyException" "message":"String" }}
Confidential
Page 39 of 59
ii.
In case the billing gets successful and CP receives 204 as response, User should be able to download the content. If CP can identify download fails scenario, then CP will call REFUND API with same transaction ID which was used in ChargeAmount API.
6.1 chargeAmount
Please refer section 5.1
6.2 refundAmount
Please refer section 5.2
If request is valid and the CP has content, CP should call SendMessage API to send the MMS content to the user. Charging Info and DeliveryReceipt is embedded in SendSMS API in such case. In case of SendSMS failure, CP checks for error description in response body returned by SDP.
Confidential
Page 40 of 59
7.1.2
If request is valid and CP does not have content for such keyword, CP will send failure message as Sorry! We are unable to process your request at this moment. Please try again after some time. Thank You to the customer by calling SendSMS API. In this case, SendSMS API will not have charging Info and DeliveryReceipt embedded in it.
7.1.3
If the value of input parameter ContentID of trigger delivery URL is invalid in request, CP will return response code 200 to SDP and sends a help message Invalid keyword, Please enter correct keyword to the customer without charging Info and DeliveryReceipt. 7.1.4 CP Application down
If CP returns error code 101 to SDP due to his service failure in the response of Trigger Delivery call, SDP sends a service message like Sorry! We are unable to process your request at this moment. Please try again after some time. Thank You to the subscriber
Confidential
Page 41 of 59
7.4 sendMessage
Request to send a multimedia message to a destination address, The content is sent as one or more HTTP attachments as MMS. The content must have the following MIME header: Content-ID: messagePart ContentType: application/json. Detail of the API specs. HTTP Method: Post URI: https://host:port/rest/multimedia_messaging/messages Consumer : External Content Provider Request Content Type: multipart/form-data Response Content Type: application/json Request headers: HTTP Basic Credentials
base64 [4] encoding of <application id> : <application instance password> Response Header: Contains one of the below response codes. o o 2xx OK 5xx internal server error
Response Body: Contains one of the below error code. Error Codes: o o o o o o o o o o SVC0001 Service error MMS-000001 Network node Timeout SVC0002 Invalid input value SVC0004 No valid addresses SVC0006 Invalid group SVC0283 Delivery Receipt Notification not supported PLG0004 No Active node found POL0001 Policy errorPOL0006 Groups not allowed POL0007 Nested groups not allowed POL0008 Charging not supported
Confidential
Page 42 of 59
senderAddress
String
Optional
MessagePriori ty
additional information about the charge Currency identifier as defined in ISO 4217 [9] Amount to be charged Charging code, referencing a contract under which the charge is applied
SimpleRefere nce: endpoint URI interfaceNam String e correlator String Tunnel Parameters
Confidential
Page 43 of 59
PPL_FLAG
String
Optional
Mandatory Mandatory
Request Header: base64 [4] encoding of <application id> : <application instance password> -X-ParamKeys=transactionId,serviceId,origContentOwnerId,contentId,contentType,senderMSISDN,contentName,channelT ype,isRated, PPL_FLAG,cpID,isLowBalMsgRequired -X-Param-Values=< transactionId>,<serviceId>,<Original Content Owner Id>, < contentId >, < contentType >,< senderMSISDN >,< contentName >,< channelType >,< isRated>, <PPL_FLAG>,<cpID>,<isLowBalMsgRequired> Request Body: { "addresses": ["URI"],<The recipient(s)>
Confidential
Page 44 of 59
8 MO MMS Integration
Description: This API is invoked by SDP to trigger delivery of a content requested by custo mer (pull based delivery). Upon receiving this trigger, CP validates the request and sends response code in HTTP response. If request is valid then CP send text content via sendSMS API. The base URL of this API is expected to be provided by External CP whi ch hosts the content and controls the delivery. Detail of the API specs. HTTP Method: Get URI: https://<cphost>:<port>/Resource?ShortCode=xxx&Keyword=&sI d=XYZ&TransactionID=ttt& ContentID=ABC
Example URL: Customer (9059134436) sends: PNR 67636235353 to short code 44444, SDP calls below CP url: https://<cphost>:<port>/Resource?ShortCode=tel:44444&Keyword=&sId=tel:9059134436&TransactionID=121
Confidential
Page 45 of 59
Consumer : Service Delivery Platform Request body: NONE Request headers: NONE Content Type : Text/HTML Response Body: Contains one of the below response code. Response codes: o o o o 200 Ok 101 Operation Failed 250 Invalid Parameter 223 Invalid Short Code
Note: Content Partner should return above response code (Integer value) in Http response body Input Data Short Code Data Type String Mandatory Mandatory Description Short Code to which Customer has send request to pull the content. Short code will be prefix with tel: e.g. tel:44444 Keyword String Conditional The value of this filed shall be blank. Not required for off deck partners. Message sends by the Customer to pull the content. E.G. PNR 67636235353 TransactionID String Mandatory Unique ID that can be used to corelates CDR/EDR in SDP with that same generated in External CP as a result of this delivery. The same ID is expected to be returned by the CP at the time of content delivery and/or charging through SDP. E.g. 121212121212 10 digits MSISDN of the Subscriber requesting the content/service.
ContentID
String
Mandatory
sId
String
Mandatory
Confidential
Page 46 of 59
Mandatory Mandatory
9 Appendix
9.1 Uninor MSISDN series and circle name
Service Area West Bengal West Bengal West Bengal West Bengal West Bengal West Bengal West Bengal West Bengal West Bengal West Bengal Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Andhra Pradesh Assam Assam Assam MSISDN Code 91260 xxxxx 91261 xxxxx 91262 xxxxx 91263 xxxxx 91264 xxxxx 91265 xxxxx 91266 xxxxx 91267 xxxxx 91268 xxxxx 91269 xxxxx 90590 xxxxx 90591 xxxxx 90592 xxxxx 90593 xxxxx 90594 xxxxx 90595 xxxxx 90596 xxxxx 90597 xxxxx 90598 xxxxx 90599 xxxxx 91210 xxxxx 91211 xxxxx 91212 xxxxx
Confidential
Page 47 of 59
Confidential
Page 48 of 59
Confidential
Page 49 of 59
Confidential
Page 50 of 59
Confidential
Page 51 of 59
91253 xxxxx 91254 xxxxx 91255 xxxxx 91256 xxxxx 91257 xxxxx 91258 xxxxx 91259 xxxxx 90840 xxxxx 90841 xxxxx 90842 xxxxx 90843 xxxxx 90844 xxxxx 90845 xxxxx 90846 xxxxx 90847 xxxxx 90848 xxxxx 90849 xxxxx 90620 xxxxx 90621 xxxxx 90622 xxxxx 90623 xxxxx 90624 xxxxx 90625 xxxxx 90626 xxxxx 90627 xxxxx 90628 xxxxx 90629 xxxxx 91720 xxxxx 91721 xxxxx 91722 xxxxx 91723 xxxxx 91724 xxxxx 91725 xxxxx 91726 xxxxx 91727 xxxxx 91728 xxxxx 91728 xxxxx
7899 xxxxxx 7870 xxxxxx
Confidential
Page 52 of 59
BJ OR UP WB
UK AP KA KE TN
Confidential
Page 53 of 59
Off-deck Pricing : SMS Subscription Services Flexi Charging Monthly 30 Fortnightly 15 Weekly 7 Daily 1
Off-deck Pricing : WAP Based Downloads Categories wallpaper Animation Polytone True Tone/ MP3 Theme Videos Games 10/10/10/15/30/15/25/50/99/Pay per use/ Download Non Premium Premium 15/Advanced
Confidential
Page 54 of 59
Confidential
Page 55 of 59
Ques 4. What will be the error code for Insufficient Balance returned by sendSMS? Do we get error code or string service error or insufficient balance? Answer. Response would be CRG002 Insufficient balance embedded in Service Error (SVC00001) as a part of response body message. The HTTP header response would be 500.
Ques 5. Answer.
In which cases, the Charging API should not be invoked? Charging is done only when the content is delivered to the subscriber. In case it is an informative message like invalid keywo rd or content is not available, the charging info should not be invoked . Will the destination number be 10 digit or 12 digit (with 91) number. Destination number has to be 10 digit MSISDN. (Without 91). What should be the Charge Code used in ca se a Text Keyword is charged for Rs. 5 or Rs. 7 There may be a case where the user is charged more than Rs. 3 for a Text Message. In such cases the Content Type should be Premium SMS (instead of Text) and code should be as per the charge code li st provided by Uninor. For e.g. code5 (Rs. 5) or code7 (Rs.7)
Ques 8. Answer.
What happens when more than 1 content is sent along with keyword? The whole message from an end user is treated as content id in Trigger Delivery URL For eg: if the user sends pm 143 hi the following URL is invoked: http://cpip:port/GatewayManager/uninor.jsp?ContentID=pm%20143%20hi&ShortCode=tel:52211&Key word=&sId=tel:BJ%23116937&TransactionID=SDP -DM-200005&imei=12434
Ques 9. Answer.
What is the length of correlator in Reciept request. Can i t be alpha numeric. Yes it can be alpha numeric. Better to keep it similar to Transaction ID for better reference of MO -MT flow. What can be the maximum length of keyword? There is no Maximum length specified for a Keyword.
Confidential
Page 56 of 59
I am getting Response Code 201 in case of sendSMS /sendBinarySMS, what is the meaning of this? This the success code for sendSMS/sendBinarySMS. The response is received as a part of HTTP Response Body. If an error occurs during send SMS, the res ponse header would be 500 and body shall contain the actual reason for failure. When should the response been made for Trigger Delivery URL. Before calling SendSMS API a nd after SendSMS API is called? As mentioned in section 2, the call to Trigger Delivery URL and SendSMS API is asynchronous. They should be called in different session. The CP is expected to validate the Trigger Delivery URL and return the correct Integer Response Code. Separately, a call should be made to SendSMS API to send the content to the user.
Answer.
Confidential
Page 57 of 59
How are the end users charged? What are the price points used to charge the end user. Content Partner shall set the charging informati on with proper Charge Code and amount in the SendSMS and SendBinarySMS API. SDP shall then take care of billing the user based on the information set by CP. Following is the list of Charge Code and Content Type to be set for different types of Co ntent.
Message
Text Premium Text Message Picture Message RingTone Non Nokia Monotone Operator Logo
Content Type
Text Premium SMS PictureMsg Monotones Monotones Logo
Charge Code
code3 code5/7(As per CP Services) code3 code7 code7 code3
How is the user charged when the user accesses a WAP Link. Charging will only be done when user starts downloading the content. User is charged using ChargeAmount API. What are transaction details? Who generates the T ransaction ID? There is a unique transaction ID generated by CP to identify each request. Please note that in case of refund amount, the transaction id is same as charge amount for a particular request.
Confidential
Page 58 of 59
Who takes care of renewal process for a Subscribed user? SDP will take care of the charging the user during renewal process and inform the Content Partner using NotifySubscription API with parameter NotifyType=Renew.
Confidential
Page 59 of 59