Professional Documents
Culture Documents
SurePay R26SU2 LDAP Interface Specification
SurePay R26SU2 LDAP Interface Specification
270-735-079R10.10
Issue 1.0
August 2006
Copyright © 2006 Lucent Technologies. All Rights Reserved.
This material is protected by the copyright laws of the United States and other countries. It may not be reproduced,
distributed, or altered in any fashion by any entity (either internal or external to Lucent Technologies), except in
accordance with applicable agreements, contracts or licensing, without the express written consent of Lucent
Technologies and the business management owner of the material.
Notice
Every effort was made to ensure that the information in this Information Product (IP) was complete and accurate at
the time of printing. However, information is subject to change.
Security Statement
In rare instances, unauthorized individuals make connections to the telecommunications network through the use of
access features.
Trademarks
Ordering information
To order this document in the United States, call 1-888-582-3688. In other countries call your Lucent Technologies
Market Manager.
Support
Technical support
For technical support on this product in the United States and Canada, call 1-800-WE2CARE. In other countries,
contact your Lucent Technologies customer helpdesk.
You may report errors or ask questions about this information product by sending mail to
aidoc@ctipinu.ih.lucent.com.
Document History
Contents
1 Introduction 1
1.1 External References 1
1.2 Compliance to LDAP Standard 1
1 1 Introduction
2 This document describes the LDAP (Lightweight Directory Access Protocol) Interface to the Lucent Technologies Surepay
service first added in Version 7 implemented on the Enhanced Control Server (eCS) platform (the eCS was formerly known
as the Service Control Point, or SCP. Any reference to SCP in this document shall be taken to mean eCS).
The LDAP interface on the eCS is identical to that on the MiLife (R) Application Server (MAS) for the equivalent release.
For example, the LDAP interface for V10SU5 on the eCS is identical to the interface for R25SU1 on the MAS. Additionally,
the interface is identical between equivalent releases in R25 and R26. For example the interface for R25SU4 is identical to
the interface for R26SU0.
Support for the LDAP e-Commerce interface was first added over two Surepay releases, V7.0 and V7.1 and subsequently
enhanced in Version 8. The interface for V10SU2 is functionally identical to V8SU6.
For all eCommerce request types the SurePay service is acting as the server.
This eCommerce LDAP interface allows a back-office system to query certain subscriber information and to apply a variety
of charges or recharges to the subscriber's account. The types of charges and recharges that can be applied are described in
detail in this document.
The SurePay service also includes support for a different type of LDAP interface for digit mapping. This interface allows
SurePay to send an LDAP request to an external system in order to map a digit string to another digit string (e.g. for number
portability). For the Digit Mapping LDAP requests SurePay is acting as the client and the external Digit Mapping system
shall act as the server. This document also includes a specification of the LDAP interface required to be supported by the
server system.
3 SurePay is a registered trademark of Lucent Technologies. The LDAP interface to SurePay is related to the SurePay Online
Charging Service (OCS). Any reference to SurePay throughout this material shall be taken to mean SurePay ® OCS unless
there is a specific note to the contrary.
4 Prior to V10SU7 all e-Commerce LDAP requests could be handled by an Interface SPA which in turn interacted as
necessary with the main Surepay SPA which handles call processing and subscriber account management. From V10SU7 all
e-Commerce interfaces and functionality is migrated to the main SurePay SPA and this Interface SPA is no longer necessary.
5 When describing the contents of LDAP messages the ASN.1 labels from the message syntax definitions in [RFC1777] are
used. Note, however, that the ASN.1 message definitions are not duplicated in this document.
12
Note that the LDAP UnbindRequest is purposely not supported. The eCS expects an LDAP connection to remain
permanently bound for performance reasons.
13 3. In the BindRequest operation, a proprietary format for the "name" parameter is required and only the "simple" setting of
the "authentication" parameter is supported.
14 4. In the SearchRequest operation, a proprietary format for the "baseObject" parameter is required and a proprietary
"extension" is used to encode multiple input fields into a single key defined in the AttributeValueAssertion for the "filter"
parameter.
15 5. Surepay eCommerce will not return application-specific errors in an unsuccessful SearchResponse. Instead a ResultCode
field will be populated in a successful SearchResponse operation. This is because the LDAP standard does not define
sufficient error codes for the purposes of eCommerce.
For the e-Commerce Request Debit (Service Delivery) LDAP request (see later for more information), the key value
“123456789::777::::MT_SMS:Weather:1:0” means…
Subscriber ID = 123456789
Provider ID = omitted
Transaction ID = 777
Requesting System = omitted
Merchant ID = omitted
Reference = omitted
Service Type = MT_SMS
Content Type = Weather
Number of Items = 1
Balance Indicator = 0 (Default Balance)
21 To reduce the number of dataviews in SurePay, and make the interface more flexible, some LDAP operations require the key
field to be encoded in a different schema instead of simple join using ':'. For example, name/value pairs will be used in the
key field ("OP=Q;Tbl_name=SIMRTDB;Tbl_key=xxx;Field_name=F1,F2,F3"). Other than ':', ',',';' and '#' may be used for
delimiter of different purpose.
SurePay will perform content sensitive parsing of the key string in these cases.
The SurePay service is configured to run on one or more Mated Pairs of eCS’s and each subscriber is assigned one eCS of
the pair to be primary (under normal call processing circumstances calls for a subscriber will be sent to the eCS that is
primary for that subscriber. Only if that eCS is down will the call be sent to the alternate eCS). This means that there are two
possible destination server eCS's for LDAP requests for any given subscriber. If the first LDAP Request from the client fails
(time out) then the client should attempt to resend the request to the other eCS. This requires that a mechanism should be
defined on the client (e.g. data table) to map each subscriber to a primary and alternate eCS. The client should always send
the first request to the primary eCS for a subscriber.
24 From V10SU7 the e-Commerce Interface SPA is no longer necessary as all e-Commerce functionality is supported in the
main SurePay SPA. If the Interface SPA is not used then an LDAP Request must be sent to the Primary eCS. If the first
LDAP Request from the client fails (time out) then the client should attempt to resend the request to the Secondary eCS.
25 The eCS server requires that a unique dataview name (dview) is defined in order to allow the client to address data stored
across multiple physical databases with a single request (all dataview names (dviews) are also defined on the eCS platform
using RCV forms 9.*). The dataview name (dview) comprises the physical dataview table name on the server plus an eCS-
specific identifier, as follows:
Dataview Name (dview) = Server eCS Id + “_” + Physical Dataview Table Name
e.g. dview = “eCS01_sub_debit” will be the dataview name for the sub_debit dataview table on server eCS “eCS01”
The requirement for the client is to bind to the defined dataview names using an LDAP Bind Request for each dataview for
each server eCS. (i.e. there could be multiple BIND requests sent to each server eCS, one for each dataview required to be
25 used). This implies that a mechanism should be defined on the client to store the server eCS Ids (e.g. data table) so that
additional servers can be added without any need to modify the client code. This table should also include the server host
name (could be the same as the eCS Id above) and port number. These are required for TCP/IP link setup.
Note that the maximum length of a dataview name (including the eCS Id) is 30 characters. This limit is imposed by the eCS
platform.
26 The client needs to store the LDAP password for each dataview to be provided in the BIND Request.
27
IMPORTANT: The dataview and field names used in the LDAP requests sent from the client must exactly match the names
specified in this document (including upper/lower case and underscore characters) in order for the request to be correctly
processed.
Internally the SurePay client defines a dataview name (dview) which is configured on the eCS platform using RCV forms 9.*
to map to physical host/port Ids for TCP/IP. The name used comprises the dataview name on the client plus an identifier of
the server Id, as follows:
e.g. dview = “serv01_test” will be the dataview name for the test dataview on server “serv01”.
The server Id is only included to allow the client to direct requests to specific servers (in case multiple servers are present).
The dview name appears in both BIND and SEARCH requests sent by the SurePay client. The server is not required to do
anything special based on the dview name or server Id except to recognise that this is a valid LDAP request. The dataview
concept is only meaningful on the client.
Note that the maximum length of a dataview name (including the eCS Id) is 30 characters. This limit is imposed by the eCS
platform.
30 2.4 Enhancements
31 This section is added to describe enhancements in subsequent releases.
32 In V10SU4 the handling of Credit Reservation requests is enhanced. In the event that the subsequent Debit request requires
an additional amount to be debited but the account has insufficient balance to cover the extra amount and Outstanding
Charges are not allowed then the following options are available, based on a configuration parameter in SurePay data:
• Allow the request and set the balance to zero - that is, deduct as much balance as possible. This is the default
behaviour. This matches the behaviour of SurePay before the enhancement was added.
• Allow the request and set balance to zero, but also send back the amount of "lost" credit in a new parameter in the
LDAP debit response.
• Fail the debit request with "Insufficient Funds". This leaves the original reservation still outstanding. The client
system can send a subsequent debit, a reservation cancel or just let the reservation expire.
33 From V10SU5 the maximum number of characters supported in the Reference field is increased from 14 to 40 and the valid
characters changed from digits to character string. A new field is also added to the AMA record to contain the enlarged field
contents called "Enhanced Reference". The service will populate both new Enhanced Reference and existing Recharge
Reference fields. When the logic populates the Recharge Reference field, only the most significant 15 digits will be
populated into the field. Any remaining digits will be dropped. This method can make sure the usage of the existing
Recharge Reference field is backward compatible. The Enhanced Reference field will contain the entire content of the
Reference in the incoming request.
34 From V10SU6 the following enhancements are included:
34 • For successful Scratch Card Recharge requests the amount of the Scratch Card used is included in the response. The
inclusion of this field is controlled by separate data configuration parameter.
• SurePay allows LDAP Request Debit Service Delivery requests to be specifically treated by SurePay as real-time
SMS/MMS requests, determined by the Service Type. In these cases the requests will be handled by the SurePay real-
time SMS logic, rather than the generic eCommerce logic. This allows SMS/MMS-specific rating, screening and other
functionality to be applied.
• For Request Debit Service Delivery two additional input parameters are supported; Location Information and
Location Information Type. These parameters can be used, for example, in charging for real-time SMS via eCommerce.
These parameters can be used to allow the client to specify that the charge is differentiated according to the subscriber
location.
• For Request Credit, one additional output parameter is supported, Additional Message. This parameter can be used to
provide to the client an additional message returned by the recharge DG. For example, a code can be returned after either
DG is traversed successfully or DG indicates the recharge amount is invalid.
35 From V10.7 the following enhancements are included:
• All e-Commerce functionality is supported in the main SurePay SPA. Therefore the e-Commerce Interface SPA is no
longer necessary.
• For Request Credit (Credit Card), Request Credit (Scratch Card) and Request Credit, a new optional parameter "Credit
Validity Period" is supported.
• For "Request Bundle Subscription" up to 15 Friends&Family numbers are added in the response.
36 From V10SU8 the following enhancements are included:
• The Authenticate Subscriber request supports returning the Class of Service (COSP) ID for the subscriber as an option.
• The Request Credit request supports returning a Class of Service code as an option.
37 From V10 SU9, the following enhancements are included:
• IPv6 support is included.
• Location Information field in Debit request (service delivery) is extended to contain IPv6 address.
• SurePay supports to reverse last recharge by the Debit Amount (Direct) request if each recharge is recorded in RE
RTDB.
• A general purpose LDAP interface of SurePay provides the functionality of subscriber profile (in SIM RTDB) query.
• There are 4 additional optional fields added for below dataviews for CDR purpose only:
• Request Credit (including direct credit, credit card, scratch card)
• Request Debit (including direct debit, service delivery)
• Reserve Credit
• New Parameter International Indicator and Connected DNlist are added into Query Balance, Request Debit
(including direct debit , service delivery)
38 From V10 SU10, the following enhancements are included:
• The Generic LDAP interface is enhanced to support actions such as Authenticate 3rd Party User and 3rd Party PIN Update.
• A new result code is added specifically for LDAP requests used for SMS charging
authentication Choice = simple, containing the OCTET The password must match that defined on
STRING "<password>" e.g. "pass01" eCS platform RCV Form 9.4
61
LDAP Bind Response
LDAP Parameter Population Rules Comments
resultCode result code assigned by the server. Possible values are:
success(0):
The "dataview" and password were
validated and the LDAP connection to
the server is now set up.
invalidCredentials(49):
Either the "dataview" or password were
invalid
unwillingToPerform(53):
The "dataview" and password were valid,
but an error has occurred on the server
that makes it unable to setup the LDAP
connection.
matchedDN zero length OCTET STRING Not set to any meaningful value by eCS
platform. Client should ignore any value
in this field.
errorMessage zero length OCTET STRING Not set to any meaningful value by eCS
platform. Client should ignore any value
in this field.
79
The eCS platform expects that all LDAP connections to the client are permanently bound. The UNBIND Request message is
not supported by the server and shall be ignored if received.
80 If after sending a BIND Request and successfully setting up the LDAP connection the client receives an LDAP Response
failure message containing a resultCode set to one of the following:
inappropriateAuthentication (48)
invalidCredentials (49)
unwillingToPerform (53)
then this indicates the server is unable to process the request. The client will have to rebind by sending another BindRequest
message to the server.
81 It is the responsibility of the client to detect the loss or failure of the TCP/IP connection to the server. This will require the
client to reconnect and rebind. Note that the method used to indicate the failure of the TCP/IP connection is not explicitly
defined in [RFC1777] and will depend on the LDAP library used by the client.
inappropriateAuthentication (48)
invalidCredentials (49)
unwillingToPerform (53)
This indicates the server is unable to process the request and the client will have to rebind by sending another BindRequest
message to the server.
123 It is the responsibility of the client to detect the loss or failure of the TCP/IP connection to the server. This will require the
client to reconnect and rebind.
The transactions include subscriber authentication, request balance, request credit through point of sale, banks, credit card
and scratch cards, debit requests and credit reservation. The service provides a mechanism for charging for different content
such as weather or football scores over various services such as SMS, WAP, GPRS. The server also allows providers to
group services together and simply charge for the number of messages or packets sent/received over a number of services.
Provider ID Identifies the Surepay subscriber The Provider ID was formerly called
Provider ID. If present, this must match "Account ID" in V8.
the Provider ID populated in the
subscriber's data.
Transaction ID An digit string that identifies the If present, this parameter shall be
transaction. included in any AMA record created by
e-Commerce Requests.
This string may be used for the
Transaction Logging feature. This parameter is also used to correlate
Balance modification AMAs generated in
the Surepay SPA to the e-Commerce
Request AMA.
Requesting System A digit string that identifies the system If present, this parameter shall be
requesting the eCommerce service. included in any AMA record created by
e-Commerce Requests.
This string may be used for the
Transaction Logging feature. SurePay may regard this as a mandatory
field if Transaction Logging is active and
the Transaction ID alone is not
guaranteed to be unique across all clients.
If this is the case and this parameter is
missing then the request will fail and
SurePay will return the error "Invalid or
Missing Parameter".
Merchant ID Identifies the Merchant providing the If present, this parameter shall be
service. If present, must match an entry included in any AMA record created by
in the Surepay e-Commerce Merchant e-Commerce Requests.
(EM) Table
If no match is found in the EM table the
request fails and SurePay returns the
error "Invalid Merchant ID".
Transaction Amount Indicates an amount to be credited to or May include a decimal point "." and up to
debited from the subscriber's balance. 4 digits after the decimal point.
Reference A character string. This content of this If present, this parameter shall be
string is of no significance to Surepay. included in any AMA record created by
e-Commerce Requests.
181
The Balance Indicator used in the following LDAP requests is of the following format:
0 - Default Balance (default)
1 - Primary Balance
2 - Secondary Balance
3 - Balance determined by Balance Selection logic. This value is only valid for request credit reservation, request debit and
request debit service delivery. (V10.9)
182 SurePay shall perform the following validation for all parameters unless there are specific requirements for special handling:
- If the parameter exceeds the maximum allowed length or if the value contains any invalid characters then the request shall
be rejected with the result code "Invalid or Missing Parameters".
183 Parameters that are defined as type "Chars" can generally speaking support any character that can be typed on a standard
computer keyboard. Note, however, that in many cases values provided must match SurePay data provisioned via the eSM
and therefore the set of valid characters is restricted. It is therefore recommended that to avoid unexpected results the
following are not provided in an LDAP character field for eCommerce:
In addition the colon character ":" must never be included as this is used as a field separator.
184 For Request Credit (Credit Card), Request Credit (Scratch Card) and Request Credit, the Credit Validity Period will only
change SIM Credit Expiry Date if the Current Date + Credit Validity Period is later than the current SIM Credit Expiry Date
(if not NULL).
195 * A Credit Card Type was provided, but did not match an entry in the SurePay CCRT table.
* A Scratch Card ID was provided, but the length was found to be incorrect according to SurePay data requirements.
* Transaction Logging is active and SurePay did not receive sufficient information to derive a unique key (one or both of Transaction ID
or Requesting System ID was missing).
* An invalid Content Value Type was provided in a Credit Reservation or Debit Service Delivery request.
* One of Content Value Type and Content Value was provided, but not both, in a Credit Reservation or Debit Service Delivery request.
196 02 = Invalid subscriber details
This error code indicates the request failed because the provided subscriber ID could not be found by SurePay in either then SIM or UA
tables or the subscriber has an eCommerce package provisioned in the SIM table, but no such package was found in the eCommerce
Package table (eCP).
197 03 = e-Commerce disabled
This result code indicates the request failed because subscriber has eCommerce disabled, or the subscriber is a postpaid account and the
subscriber's COSP data eCommerce Requests Allowed for Postpaid subscriber is set to false.
198 04 = Invalid merchant ID
This result code indicates the request failed because the Merchant ID in the request did not match a valid entry in the e-Commerce
Merchant data.
199 05 = Subscriber activity barred
This result code indicates the request failed because:
* All activity is barred in the subscriber's current lifecycle state
* eCommerce activity is barred in the subscriber's current lifecycle state.
* eCommerce activity is barred because the subscriber's account is not yet activated.
* The subscriber's account has expired
* The subscriber's account is in error because the Account data Error Indicator is set to a value other than "Normal".
* For token charging, execute time for eCommerce credit reservation request is invalid for the reserved token start time and end time.
* No balance of this account is selected out for this call for charge. (V10.9)
200 06 = Barred Call in Progress
This error code indicates the request failed because a call is in progress and the service has been configured to reject eCommerce requests
in this case.
201 07 = Invalid currency label
This result code indicates the request failed because the Currency Label in the request does not match a valid entry in the International
Currency data.
202 08 = Maximum balance limitation
This result code indicates a recharge request failed because the Recharge Amount would cause the subscriber's balance to exceed a
provisioned maximum limit.maximum.
203 09 = Minimum balance limitation
This result code indicates:
* A credit card recharge request fails, because the Recharge Amount was less than the minimum amount allowed for such a recharge.
* A credit reservation request fails, because there is insufficient balance in the subscriber's account, and the reservation would cause the
balance to drop below the threshold defined by the COSP data e-Commerce Minimum Credit for Reservation.
204 10 = Credit card request declined
This error code indicates a Credit Card Recharge request failed because the external credit card system refused the transaction.
205 11 = Credit card daemon not in service
This error code indicates a Credit Card Recharge request failed because no external credit card system was available.
206 12 This result code is not used.
This error can also be returned because the reservation period exceeded the maximum allowed.
233 40 = Failed - Transaction ID Unknown
This result code means that a Transaction ID that should exist in the SurePay Transaction ID data can not be found. Currently this can
only occur for execution of a Debit or a Cancel for a previous Credit Reservation request.
234 41 = Failed - Transaction in Progress
This result code means that a request with this Transaction ID has already been received, and the processing is in progress. This could be
caused by a delay in responding to the original request and a re-send timer in the requesting system being set to too small a value.
235 42 = Failed - Maximum Reservation Amount Exceeded
This result code indicates that a Credit Reservation request fails, because the amount to be reserved exceeds the maximum allowed (as
defined by the SurePay COSP data e-Commerce Maximum Reservation Amount).
236 43 = Failed - Cannot find last Recharge Event Record
This result code indicates that SurePay cannot find the last recharge Event Record in RERTDB when client sends Request Debit (reverse
last recharge) request to SurePay. This request shall be rejected with the result in this case.
237 44 = Failed - Exceed the validity period for recharge reversal
This result code indicates that time period has exceeded the provisioned valid period between the time of last recharge and the time when
Request Debit (reverse last recharge) request is sent to SurePay. This reversing last recharge request shall be rejected with the result in this
case.
238 45 = Account Data Truncated
239 This result code indicates that Account Data field in response of Request Balance has been truncated, since the total size of fields defined
in Account Query table for this request exceeded the size limit of Account Data field.
From V10SU11, this result code also be used in the Request Credit , Debit Amount and Debit Service Delivery.
240 68 = Failed - Chargeable Event Happened before Recharge Reversal
This result code indicates that one or more chargeable event happened between the time of last recharge and the time when Request Debit
(reverse last recharge) request is sent to SurePay. This reversing last recharge request shall be rejected with the result in this case.
241 LDAP triggered SMS/MMS result codes
From V10SU6 SurePay allows LDAP Request Debit Service Delivery requests to be specifically treated by SurePay as real-time
SMS/MMS requests, determined by the Service Type. In these cases the requests will be handled by the SurePay real-time SMS logic,
rather than the generic eCommerce logic. Certain errors from the real-time SMS logic result in specific LDAP result codes being returned,
as defined below :
(Service Delivery)
Request Balance
Request Credit
Request Credit
Request Credit
(Scratch Card)
Reserve Credit
Request Debit
Request Debit
(Credit Card)
Authenticate
Result Code
Subscriber
00 x x x x x x x x
01 x x x x x x x x
02 x x x x x x x x
03 x x x x x x x x
04 x x x x x x x x
05 x x x x x x x x
06 x x x x x x
07 x x x x x x
08 x x x
09 x x
10 x
11 x
12
13 x
14 x
15 x
16 x
17 x x
18 x x x x x x x
20 x
21 x
22 x
23 x
24 x
25 x
26 x
27 x
28 x
29 x
31 x
32 x
33 x
34 x x x x x
35 x x x
36 x
37 x x x x x x
38 x x x x x x
39 x
40 x
41 x x x x x x
42 x
43 X
44 X
45 x
57 x
68 X
70~77 x
98 x x x
99 x x x x x x x x
246 Note that for e-Commerce responses all errors from the Surepay application will be returned to the client in a successful
Search Response. The only unsuccessful Search Responses (which will include the LDAP resultCode parameter) shall come
246 from the eCS Platform directly (if any), not from Surepay. This is because the set of resultCode values defined by the LDAP
standard provides insufficient flexibility for the number of different application error types that are required for Surepay e-
Commerce.
Unless stated otherwise in this document, the client can assume that in the event that SurePay returns an application error
then all response parameters other than the resultCode shall be set to a null string.
293 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes: Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference supports 40 character string
If COSReturn is set to "YES" then the response shall include the COSP ID from the SIM RTDB.
313
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and
attributes parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second
Search Response shall include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason
assigned by the eCS platform.
314 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in
General Requirements for e-Commerce section
374 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
374 Connected DNlist (330 chars) Optional0..9, "#", "*", "," only
AccountDataGrpID (14 chars) OptionalChars
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required (except for Balance Requested and Balance Category where the ":" may also
be omitted to maintain backward compatibility).
Notes: Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference supports 40 character string.
375 The valid values for the "Balance Requested" parameter are as follows:
0 = Default Balance
1 = Primary Balance
2 = Secondary Balance
3 = Both Balances (default)
If this parameter is not present then both balances shall be returned (if two balances are defined for this subscriber).
Otherwise just the single balance indicated shall be returned in bal1 result field.
376 The valid values for the "Balance Category" parameter are as follows:
0 = Actual Balance
1 = Balance Unallocated
If this parameter is not present then "0" is assumed. Normally these two values return the same amount. However, if there is
a call in progress at the SurePay SPA then it is possible that some credit has been allocated to the call in progress, but not
used yet. These settings have the following meaning:
"Actual Balance" is the actual amount of credit in the subscriber's account at the time the request is received. This is defined
as the Balance minus any credit already used by a call.
"Balance Unallocated" is the amount of credit in the subscriber's account minus any credit allocated to a call, but not used
yet. If a call is in progress this is the amount available for eCommerce debits. If a client system is using the Balance Request
to determine if the subscriber has sufficient funds for a subsequent debit then "Balance Unallocated" is the best option.
Note that in either case the Balance returned shall not include any credit that has been reserved.
377 The International Indicator defined in the interface is used to indicate if any number in the Connected DNlist is an
international number.
The Connected DNlist parameter is used to define the numbers to which the SMS will be sent.
These two parameters are used to check if any "IN message buckets" or "Non-International Buckets" are available for this
subscriber. If there is any IN message buckets available for this subscriber, beside the normal balance information, the return
message will contain indicator to indicate that.
398
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
399 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section
bal1 OCTET STRING(SIZE(15)) Subscriber's Primary Balance, presented as a string. May include
"." and up to 4 digits after the decimal point. May be negative
(prepended by "-").
bt1 OCTET STRING(SIZE(1)) Subscriber's Primary Balance Type.
0 = Prepaid, 1 = Postpaid
bal2 OCTET STRING(SIZE(15)) Subscriber's Secondary Balance (if supported), presented as a
string. May include "." and up to 4 digits after the decimal point.
May be negative (prepended by "-").
bt2 OCTET STRING(SIZE(1)) Subscriber's Secondary Balance Type.
0 = Prepaid, 1 = Postpaid
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the same as that present in the original
request. If no currency label was provided in the original request
then this shall be the currency label defined for the subscriber in
the Surepay SIM Table.
inov OCTET STRING(SIZE(1)) Indicates if this subscriber has IN Message Bucket or Non-
International Message Buckets.
Notes: "IN message Buckets" is a concept within a carrier. When
a subscriber who belongs to a specific carrier sends an SMS to
another subscriber who belongs to the same carrier this kind of
SMS can be called an "IN" message. The "IN message buckets"
feature is used to provide a bucket capability for subscribers who
send an "IN" message.
ad OCTET STRING(SIZE 512) Subscriber's additional data indentified by the AccountDataGrpID
in the request.
437 The field AccountData(ad) in response is encoded as "tag1=value1;tag2=value2…" where the tags are the abbreviated field tags of the
account date, and the values are the field values.
The tags are provisioned in Account Query(AQ) table.
* If the tag of a field is not provisioned, the AccountData field shall only include its value, e.g. if the 2nd field's tag is not
provisioned, the AccountData in the response of query is "tag1=value1;value1;..."
* If the value of a field is NULL and the tag of this field is provisioned, the encoding shall be, for example, "tag1=value1;tag2=;..."
* If the value of a field is NULL and the tag of this field is not provisioned, the encoding shall be, for example, "tag1=value1;;..."
* if neither the field name/variable nor the tag is provisioned, i.e. a NULL slot in AQ table, the Account Data field in response
shall skip this field, e.g. "tag1=value1;tag3=value3;..." in which the second slot is skipped
In case the value includes semicolon ";" or equal mark "=" or backslash "\", then it should be replaced with "'\;"' or "\=" or "\\" in the
response, e.g. "fieldname1=a;b" is encoded as "fieldname1=a\;b;...".
In case the concatenated query result exceeds the size limit of Account Data field, the result shall be truncated by only including the
number of query result fields not exceeding it in the response, e.g. if the total size of 1st 12 fields is 516 bytes while the total size of 1st 11
fields is 508 bytes, and the size limit of AccountData field is 512 bytes, then the result shall only include 1st 11 fields "...tag11=value11",
and the result code shall be set to 45 to indicate this.
The request includes an indication of which balance is to be recharged. These requests can only be applied to PrePaid
balances. The transaction amount is always supplied.
484 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Notes :Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character string.
485 Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ") (V10.9)
486 The following table describes those input parameters not already described in the General Requirements for e-Commerce section:
Input Parameter Meaning Comments
Credit Card Number Identifies the Surepay subscriber Credit Card Depending on a provisioned option, as an
number additional security measure Surepay can reject
the card number if it does not match the credit
card number defined in the Surepay
subscriber's SIM Table record.
01 = American Express
02 = Diners Club
03 = Eurocard
04 = Visa Card
05 = JCB
06 = Eurocheque
07 = Mastercard
08 = Discover
520 The Credit Expiration Date is four digits in the format MMYY where MM must be in the range '1' to '12' and the YY must be
in the range '00' to '99'.
521 The 'Requires Processing' parameter indicates whether the credit card transaction has already been processed with a financial
institution. The values must be one of the following:
1 - Surepay must validate transaction. Card has not already been processed
0 - Card has already been processed, no validation required by Surepay
The default value is 1.
542
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
543 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the recharge was applied, presented as
a string. May include "." and up to 4 digits after the decimal
point. May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the same
as the currency label in the original request.
ava OCTET STRING(SIZE(3)) Indicates the number of available Recharge attempts for the
Subscriber before the subscriber's account becomes barred. This
parameter is only present for failed recharge attampts.
611 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character string.
612 Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ") (V10.9)
613 The following table describes those input parameters not already described in the General Requirements for e-Commerce section:
Input Parameter Meaning Comments
Scratch Card Number Identifies the Scratch Card Number Surepay determines from the scratch card
number whether the scratch card database is
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
648 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the recharge was applied, presented as
a string.
May include "." and up to 4 digits after the decimal point. May be
negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the same
as the currency label in the original request.
ava OCTET STRING(SIZE(3)) Indicates the number of available Recharge attempts for the
Subscriber before the subscriber's account becomes barred. This
parameter is only present for failed recharge attempts.
rec OCTET STRING(SIZE(15)) Scratch card value, presented as a string. May include "." and up
to 4 digits after the decimal point. This parameter is included only
if the recharge request was successful.
720 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character strings
721 Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ") (V10.9)
722 The following settings of the Credit Type parameter are supported (if not present or set to any other value then no specific
meaning is defined and the request shall be treated as a generic credit request):
723 "100" = This is a request to reverse a previous debit request (e.g. a refund of a charge for a service that was unable to be delivered to the
subscriber). The only difference between this and a generic credit request is a different AMA event label is used and SurePay will not treat
a Reverse Transaction as a recharge, only a simple balance adjustent.
724 Credit Validity Period is only valid when Credit Type is not "100". (from V10.7)
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
746 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the credit is applied, presented as a
string. May include "." and up to 4 digits after the decimal point.
May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table.
amg OCTET STRING(SIZE(32)) Indicates additional message returned by the Recharge DG. May
be presented as a currency amount (may include "." as a decimal
point) or set to "0".
2. Delivery services include GPRS, WAP ,SMSC or MMSC Incoming and Outgoing messages. Service type of Messages
and Packets are available to allow the charging of total messages/packets delivered across multiple delivery mediums such as
GPRS, WAP,SMSC or MMSC.
Surepay has no in built information regarding merchants, service types or contents types. This information is provided in the
e-Commerce request as identifiers which the service uses to access charging tables.
The charges can be defined as flat charge which is applied per message or packet, or a number of charge rates according to
previous usage. The usage is tracked per subscriber for individual merchant/service/content types. The provider can setup
charging grace periods allowing subscribers to receive free service for a given number of messages or time from when they
initially subscribe to a given service.
818 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required (except for the parameters Debit Type, Dest Address, Content Value Type,
Content Value, Location Information Type and Location Information, where the ":" may also be omitted if none of these
fields is provided to maintain backward compatibility).
From V10 SU9, the Location Information field can contain an IPv6 address, where ":" character is part of the IPv6 address
field. Service shall do some content sensitive parsing. If the filed is an IPv6 address, the format should like
"[FEBC:ABCD:0008:4567:FE98:0800:200C:417C]". The IPv6 address should be enclosed in "[" and "]", and the address
format must be "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx", where 'x' is hexadecimal characters.
Notes:
1.Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character strings
2.For LDAP SMS/MMS request, Number Of Items is not applicable, it will be ignored.
3. For LDAP SMS/MMS request, SurePay does not support Mixed Credit accounts, so the Balance Indicator field only
supports 0 or 1.
819 The International Indicator defined in the interface is used to indicate if any number in the Connected DNlist is an international number.
The Connected DNlist parameter is used to define the numbers to which the SMS will be sent.
These two parameters are used to check if any "IN message buckets" or "Non-International Buckets" are available for this subscriber.
820 Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ") (V10.9)
821 The following settings of the Debit Type parameter are supported (if not present or set to any other value then no specific handling is
defined and the request shall be treated as a normal debit request).
822 "100" = This is a request for which the SurePay service shall calculate the charge for the requested service and return result codes as
before, but not debit the amount from the subscriber's account. The client can use this option to determine if there is sufficient balance to
cover a charge, but without knowing the actual amount to charge.
823 "200" = This is a request to charge interim multi-recipient MMS. This is handled exactly the same as other debits, but there will be no SIM
History entry created.
"201" = This is a request to charge final multi-recipient MMS. The only action taken for a request of this type is to generate a SIM History
entry.
824 The following table describes those input parameters not already described in the General Requirements for e-Commerce section:
Input Parameter Meaning Comments
Service Type Identifies the Service Type for the delivered The combination of Merchant ID, Service
service Type and Content Type is used to define the
per item charge, via Surepay Rating tables.
Location Information Type Identifies the type of value defined by the If present, the Location Information Type and
location Information parameter. Location Information can be used in
combination to vary the charge applied. For
0 Location Number example, this allows SurePay to support
1 Geographic location based charging.
2 VLR Number
3 Location Info Number If Location Information Type is present, but
4 Cell ID LAI the Location Information parameter is not
5 SGSN Address (GT format) present then Surepay will return the error
6 SGSN IP Address "Invalid or Missing Parameters".
Location Information type in BOLD shall be if the Location Information Type is SGSN IP
supported in V10SU6. In the initial release Address. the Location Information shall be
only Location information based on VLR usual notation format. e.g for IPv4 address, it
address shall be supported in SurePay shall be dotted decimal notation format. e.g
service logic (Location Information Type = 2, 192.168.0.1, otherwise, Surepay will return the
5, 6). The LDAP interface supports the other error "Invalid or Missing Parameters". For
types indicated above for future expansion. IPv6 address, it should be enclosed in "[" and
The VLR address from external client shall be "]", and the address format must be
provided in E.164 format. "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx"
, where 'x' is hexadecimal characters.
Location Information Location Information is defined by Location If Location Information is present, but
Infomation Type parameters. Location Information Type parameter is not
present then Surepay will return the error
"Invalid or Missing Parameters".
894
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
895 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the debit is applied, presented as a
string. May include "." and up to 4 digits after the decimal point.
May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the same
as the currency label in the original request.
amt OCTET STRING(SIZE(15)) Indicates the amount charged (or calculated only, depending on
the Debit Type parameter) in the currency indicated by the "cur"
attribute for the request presented as a string. May include "." and
up to 4 digits after the decimal point. This parameter shall also be
populated (together with the currency) if the result code is
"Insufficient Funds".
inov OCTET STRING(SIZE(1)) Indicate if this subscriber has IN Message Bucket or Non-
International Message Buckets
967 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character strings
968 Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ") (V10.9)
Debit Type (3 digits) Optional 0..9 only
969 The following settings of the Debit Type parameter are supported (if not present or set to any other value then no specific handling is
defined and the request shall be treated as a normal direct debit request).
970 "300" = This is a request for which SurePay shall reverse the last recharge during the valid period. i.e. debit the last recharge amount and
remove the last recharge bonus (e.g. credit, buckets) recorded in the Recharge Event RTDB and SIM RTDB for the subscriber.
971 The following table describes those input parameters not already described in the General Requirements for e-Commerce
section:
Input Parameter Meaning Comments
Debit Type Identifies a particular type of debit. The only valid value defined for
This allows special handling of this Debit Type is "300". Any other
debit request value shall be ignored and the request
treated as a normal debit request.
1001
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
1002 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the debit is applied, presented as a
string. May include "." and up to 4 digits after the decimal point.
May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the same
as the currency label in the original request.
inov OCTET STRING(SIZE(1)) Indicate if this subscriber has IN Message Bucket or Non-
International Message Buckets
resamt OCTET STRING (SIZE(15)) The reversing amount from last recharge event after the debit is
applied (only for debit type is '300', presented as a string. May
include "." and up to 4 digits after the decimal point.
1. Request an amount (determined by the client system) be reserved from the SurePay subscriber's balance.
2. Request the execution of an eCommerce debit request against a previously reserved amount (this might require the service
to debit or credit an amount from/to the balance depending on whether the reserved amount was sufficient or not).
3. Cancel a previously reserved amount and return the amount to the subscriber's balance.
1032
The parameters to be sent in the LDAP Search Request shall be as follows:
LDAP Parameter Population Rules Comments
baseObject "dview=<scp_id>_res_credit" See General Requirements section
scope SingleLevel (1)
derefAliases neverDerefAliases (0) parameter not applicable
sizeLimit 0 (No size limit restrictions) eCS will only return 1 result
timeLimit 0 (No timelimit restrictions) eCS will respond within 4 seconds
attrsOnly 0 (FALSE) (attribute types and values) eCS will always return both names & values
filter Choice equalityMatch[3] Must populate AttributeValueAssertion
attributes Empty, OR Empty = retrieve all attributes
Sequence of attribute names Seq = retrieve only a subset of attributes
AttributeValueAssertion AttributeType = "sid" sid = OCTET STRING(SIZE(250))
AttributeValue = <key attribute value> This is the table key field which shall be
composed of a concatenated string of input
parameters
1074 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required (except for the fields Dest Address, Content Value Type and Content Value
where the ":" may also be omitted if none of the fields is provided to maintain backward compatibility).
** Note that the Balance Indicator is ignored if the Reservation Request Type is "Execute Debit Against Reserved Credit" or
"Cancel Reserved Credit". SurePay always uses the balance from which the reserved amount was originally deducted.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference supports 40 character string.
1075 Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ") (V10.9)
1076 The following table describes those input parameters not already described in the General Requirements for e-Commerce section:
Input Parameter Meaning Comments
Service Type Identifies the Service Type for the delivered The combination of Merchant ID, Service
service Type and Content Type is used to define the
per item charge, via Surepay Rating tables.
This can be used, for example, to define the If the Content Value is present, but the Content
size of the eCommerce service provided, in Value Type parameter is not present then
KBytes. Surepay will attempt to use a default Content
Value Type. If none is available then Surepay
will return the error "Invalid or Missing
Parameters".
1138
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
1139 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the credit reservation, execution or
cancellation is applied, presented as a string. May include "." and
up to 4 digits after the decimal point. May be negative (prepended
by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the same
as the currency label in the original request.
amt OCTET STRING(SIZE(15)) Indicates the amount reserved, charged or cancelled (in the
currency indicated by the "cur" attribute) for the request
presented as a string. May include "." and up to 4 digits after the
decimal point.
diff OCTET STRING(SIZE(15)) This field only applies for execution of debits against a reserved
amount. This indicates the difference between the amount
reserved and the actual amount charged presented as a string.
May be prepended by "-" and include "." and up to 4 digits after
the decimal point.
The value shall be presented as a string and may include "." and
up to 4 digits after the decimal point.
Note. Ideally the client system should ensure that the above
scenario never occurs by using one of the following methods:
Note: The eCS/MAS platform supports LDAP requests up to a total size of 1024 bytes. In theory this limit can be exceeded
for this request type for subscribers with very extreme provisioning (the maximum number of bundles/discounts is used,
parameters are provisioned to maximum size, etc. The total request size can be calculated by adding the sizes for each
attribute name and value, including the key, and then add 10 bytes overhead for header information. Finally add 1 byte for
every attribute name and 2 bytes for every attribute value). In practise this extreme provisioning is not realistic and no
problems are anticipated. The LDAP message size limit will be increased in the near future.
1171 From V10SU8 the LDAP message size limit is increased to 5K.
1216 The service shall be able to receive a request to query the subscriber balance with the following inputs.
1217 The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is necessary.
The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may be omitted.
1218 The valid values for the "Balance Requested" parameter are as follows:
0 = Default Balance
1 = Primary Balance
2 = Secondary Balance
3 = Both Balances (default)
If this parameter is not present then both balances shall be returned (if two balances are defined for this subscriber).
Otherwise just the single balance indicated shall be returned in bal1 result field.
1219 The valid values for the "Balance Category" parameter are as follows:
0 = Actual Balance
1 = Balance Unallocated
If this parameter is not present then "0" is assumed. Normally these two values return the same amount. However, if there is
a call in progress at the SurePay SPA then it is possible that some credit has been allocated to the call in progress, but not
used yet. These settings have the following meaning:
"Actual Balance" is the actual amount of credit in the subscriber's account at the time the request is received. This is defined
as the Balance minus any credit already used by a call.
"Balance Unallocated" is the amount of credit in the subscriber's account minus any credit allocated to a call, but not used
yet. If a call is in progress this is the amount available for eCommerce debits. If a client system is using the Balance Request
to determine if the subscriber has sufficient funds for a subsequent debit then "Balance Unallocated" is the best option.
Note that in either case the Balance returned shall not include any credit that has been reserved.
Note: For Actual Balance case, the return value shall deduct any corresponding Outstanding Charge amount if any is
applicable.
1240
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
1241 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General Requirements
for e-Commerce section
b1 OCTET STRING(SIZE(15)) Subscriber's Primary Balance, presented as a string. May include
"." and up to 4 digits after the decimal point. May be negative
(prepended by "-").
bt1 OCTET STRING(SIZE(1)) Subscriber's Primary Balance Type.
0 = Prepaid, 1 = Postpaid
ff1~ff15 (15 OCTET STRING(SIZE(24)) Indicates the 15 FF numbers asociated with the 5 bundles. These
attributes) parameters will only be populated in V10SU7 and later.
Note: The Platform Result code shall refer to the subsection Platform Result Code in section e-Commerce LDAP Requests.
1356 00 - Success
This result code indicates the request/operation is successful.
1357 01 - Invalid or missing parameter
This result code indicates that mandatory parameter is missing or data is present but in wrong format.
1358 02 - Account Not Found/ Invalid subscriber details/ Record Not Found
This result code indicates that there is no account found with input parameter subscriptionID as account ID. If the opeartion is query
RTDB and the queried table is not SIMRTDB, this result code indicates that there is no record in queried table with the input key.
1359 05 - Not supported in Life Cycle state/ Subscriber activity barred
This result code indicates the request failed because:
* All activity is barred in the subscriber's current lifecycle state
* Activity is barred in the subscriber's current lifecycle state.
* Activity is barred because the subscriber's account is not yet activated.
* The subscriber's account has expired
* The subscriber's account is in error because the Account data Error Indicator is set to a value other than "Normal".
1360 06 - Card in use/ Barred Call in Progress
This result code indicates balance transfer is not allowed because of calls in progress.
1361 08 - Balance limit Exceeded
This result code indicates a failure because the Recharge Amount would cause the subscriber's balance to exceed a provisioned maximum
limit.
1362 13 - Invalid or missing PIN
This result code indicates that input parameter PIN doesn't match the account's 3rd party access PIN.
1363 18 - Invalid balance
This result code indicates that the provided balance indicator is not allowed to do balance transfer. (This case is not support in V10.10)
Also, this result code will be returned if there is no prepaid balance available for balance transfer.
1364 35 - Insufficient balance
This result code indicates remaining balance of the account is not enough to fund the specified AMT.
1365 37 = Failed - Transaction ID Used
This result code means the provided Transaction ID has been previously used by a different request type, or for a different subscriber. This
will be an indication of non-unique transaction IDs being sent from a requesting application.
1366 38 = Failed - Transaction ID Committed
This result code means the requested Transaction ID has already been received and successfully processed by SurePay. This will be an
indication that a successful response to the original transaction was lost, causing a re-send from the requesting system. This error return
can therefore actually be regarded as a success case.
1367 41 = Failed - Transaction in Progress
This result code means that a request with this Transaction ID has already been received, and the processing is in progress. This could be
caused by a delay in responding to the original request and a re-send timer in the requesting system being set to too small a value.
1368 45 = Account Data Truncated
This result code indicates that return data field in response of LDAP query RTDB data has been truncated, since the total size of fields
exceeds the size limit of return data field.
Balance Transfer
Balance Transfer
Authenticate 3rd
Authenticate
Result Code
party user
data
PIN
00 x x x x x
01 x x x x x
02 x x x x X
05 x X X
06 X X
08 X X
13 x x X X
18 X X
35 X X
37 X
38 X
41 x
45 x
71 X
72 x
85 X
86 X
87 X
88 x
89 x
99 x x x x x
1379 The LDAP SEARCH key for this LDAP request will follow different pattern for different purpose. In general, the first
name/value pair appearing in the key shall always be "OP=x" to indicate the requested operation type. Here, 'x' can be one of
the following:
• Q - Stands for query
• A - Stands for action
• U - Stands for update
• D - Stands for delete
1380 For name=value pair (e.g, OP=A) in the key, name part is case insensitive. For example, both 'op=A' and 'Op=A' are legal.
The blank is ignored before or after the delimiter. e.g. 'op = A ;' is treated as 'op=A;'.
1381 Without specification, variable part (input parameters after '#') in the LDAP SEARCH key shall be provided in name=value
format, and multiple values are joined with ','.
Parameter will be treated as not presented if there is no occurrence for the pair. If value is blank, service will think that the
parameter is presented with '' as the value.
1382 1. There is no requirement on parameters' occurrence order, except that OP=x shall be first part of the request .
2. If the same name/label appear more than once in the LDAP request, then service shall reject the command by returning a
response with Result Code "01 - Invalid or missing parameters", generate an alarm with assert code 200 to describe the
situation/error.
3. If there are any unknown/undefined name/label in the LDAP requests, service shall ignore the unknown/undefined
name/label and value, and continue the processing.
1383 LDAP Search Request
1384 The parameters sent in the LDAP Search Request shall be as follows:
LDAP Parameter Population Rules Comments
baseObject "dview=<scp_id>_request_data" See General Requirements section
scope SingleLevel (1)
derefAliases neverDerefAliases (0) parameter not applicable
sizeLimit 0 (No size limit restrictions) eCS will only return 1 result
timeLimit 0 (No timelimit restrictions) eCS will respond within 4 seconds
attrsOnly 0 (FALSE) (attribute types and eCS will always return both names & values
values)
filter Choice equalityMatch[3] Must populate AttributeValueAssertion
attributes Empty, OR Empty = retrieve all attributes
Sequence of attribute names Seq = retrieve only a subset of attributes
AttributeValueAssertio AttributeType = "sid" sid = OCTET STRING(SIZE(1500))
n AttributeValue = <key attribute This is the table key field which shall be
value> composed of a concatenated
string of input parameters
The Query request shall have the following LDAP SEARCH key:
OP=Q;Tbl_Name=<RTDB Name>;Tbl_Key=<RTDB Key Value>;Field_Name=<Fieldname1,Fieldname2,.....,Fieldnamen>
* Use semicolon " ; " as the delimiter for the different input parameters
* Use comma " , " as the delimiter for the different field name in the parameter "field_name". The blank is ignored before or after the
delimiter.
* The key name (Label name) OP, Tbl_Name,Tbl_Key,Field_Name are case insensitive. e.g. both tbl_name and Tbl_Name are correct
when parsing. The value for each key shall be case sensitive.
* The total length of LDAP request is string(1500).
Example:
The LDAP request command could be
op=Q;tbl_name=SIMRTDB;tbl_key=7328631122;field_name=Class of Service ID,Currency Label,SCP Name,SIM State,Third Party
Access PIN,Error Indicator,Expiry Date,Language Label,SIM Credit Expiry Date
1430 This table describes the input parameters of LDAP Query Account RTDB data request.
1474 In V10.9, this LDAP query only supports to access SIM RTDB data. If the Tbl_Name is not "SIMRTDB", then SurePay shall only return
result code 01 - Invalid or missing parameters in the response and generate alarm message with assert code 200.
1475 If SurePay retrieves record from RTDB, then SurePay shall return the values for corresponding queried fields from RTDB directly.
The return data shall be in the format of
fieldname1=<val>;fieldname2=<val>;fieldname3=<val>;......fieldnamen=<val>
Example:
The return_data could be:
Class of Service ID=FlatOne9000;Currency Label=dollar;SCP Name=scp1;SIM State=ACTIVE;Third Party Access PIN=;Error Indicator=
0;Expiry Date=20080801;Language Label=English;SIM Credit Expiry Date=20060530
1476 No AMA generated for the LDAP request of querying RTDB data.
1478 The service shall be able to receive a request to authenticate a 3rd party user with the following LDAP SEARCH key.
OP=A;ACTION=3RD_PARTY_AUTH#SubscriptionID=xxx,PIN=xxx,Provider_ID=xxx
"OP=A;ACTION=3RD_PARTY_AUTH#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the
requesting system.
1479 Below table describes the variable part of LDAP SEARCH key.
Input parameter (Name) Required Type Comments
SubscriptionID Y String(16), 0~9, A~F only the user ID, card ID or
account ID, which SurePay
will used as key for
accessing account data.
1518 If the user is authenticated successfully, SurePay shall use string "3RD_PARTY_AUTH" as the AccountDataGrpID input parameter and
SubscriberID as Subscriber ID input parameter to follow the same logic as "Request Balance" LDAP request (all other input parameters for
"Request Balance" are treated as not present).
If "Request Balance" logic fails, service will still return a success response for the action.
Following result of "Request Balance" logic will be joint with ',' and set to the "Return Data" output parameter of Authenticate 3rd party
user LDAP request.
• balance_1
• bal_type_1
• currency_label
• acc_data
00 - Success
This result code indicates the authentication is successful.
1519
71 - Maximum call exceeded for third party call
This result code indicates that maximum simultaneous call exceeded for the account.
99 - Internal error
This result code indicates all the other errors which could happen.
"OP=A;ACTION=MOD_3RD_PIN#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the requesting
system.
1522 Below table describes the variable part of LDAP SEARCH key.
1544 This request will have the same output parameter as the request of "Authenticate 3rd party user", the difference is that "MOD_3RD_PIN"
shall be used as the AccountDataGrpID input parameter of "Request Balance" logic if the PIN is updated successfully.
00 - Successful
01 - Invalid or missing parameter
02 - Invalid subscriber details
13 - Invalid or missing PIN
99 - internal error
"OP=A;ACTION=AUTH_BAL_TRANS#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the
requesting system.
1548 Below table describes the variable part of LDAP SEARCH key.
Input Parameters (Name) Required Type Comments
TID N String(20), 0~9 only Refer to eCommerce
Transaction ID part.
0 - Not require.
1- Required.
3RD_PIN N String(18) 3RD party PIN of the
subscriptionID. If present, PIN
verification will be done.
ROLE Y String(1), T or S Indicates whether the
"subscriptionID" is target or
source during balance transfer.
T - Target
S - Source
SOURCE N String(16), 0~9, A~F only Source account ID of the
balance transfer.
TARGET N String(16), 0~9, A~F only Target account ID of the
balance transfer.
AMT N String(15). Transfer amount in currency
from SOURCE for the balance
transfer.
0 - False
1- True
1615 This request will have the same output parameter as the request of "Authenticate 3rd party user", the difference is that
"AUTH_BAL_TRANS" shall be used as the AccountDataGrpID input parameter of "Request Balance" logic if the SubscriptionID is
allowed to do balance transfer.
00 - Success
This result code indicates that the account is allowed to do balance transfer.
06 - Card in use
This result code indicates balance transfer is not allowed because of calls in progress.
13 - Invalid PIN
This result code indicates the provided PIN doesn't pass the validation.
18 - Invalid balance
This result code indicates that the provided balance indicator is not allowed to do balance transfer. (This case is not support in V10.10)
Also, this result code will be returned if there is no prepaid balance available for balance transfer.
35 - Insufficient balance
This result code indicates remaining balance of the account is not enough to fund the specified AMT.
99 - Internal error
This result code indicates other errors which could happen.
"OP=A;ACTION=BAL_TRANS#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the requesting
system.
1619
This request has the same input parameters with authenticate balance transfer request with following exceptions:
• VERIFY_PIN and 3RD_PIN shall always be omitted.
• SOURCE and TARGET are required.
• METHOD is required.
1620 This request will have the same output parameter as the request of "Authenticate 3rd party user", the difference is that "BAL_TRANS"
shall be used as the AccountDataGrpID input parameter of "Request Balance" logic if balance transfer successes.
1621 Beside all the result code listed for "authenticate balance transfer" action, this action will also return the following result code:
89 - System Error
This result code indicates that service was failed to debit/credit the account.
1642 A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
eCS platform.
The attributes returned in a successful LDAP Search Response shall be as follows
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the
General LDAP NE Query Interface Section
rd OCTET STRING(SIZE(3000)) Corresponding information in the response
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
server.
1726 The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
ndig OCTET STRING(SIZE(26)) The new digit mapped digit string.
1736 In cases of "no match", the server should respond with a single SearchResponse message containing the resultCode set to 0
"Success".