PurchaseProduct

The PurchaseProduct web serviceClosed XML- or JSON-based information exchange systems that use the Internet for direct application-to-application interaction. These systems can include programs, objects, messages, or documents. provides Subscribers with the functionality to purchase one-off product offers, such as Top-ups or Bolt-ons, from an external SelfcareClosed A MDS online self-service customer care tool. application or an IVRClosed Interactive Voice Response. An automated customer management interface that accepts voice and phone tone input to allow limited self-management of an account. system.

The Selfcare application invokes the ability to take real time payments for the products via a third partyClosed Of software; a reusable component developed to be either freely distributed or sold by an entity other than the original vendor of the development platform. payment provider by calling a Purchase Offers request in the associated Real TIme Charging (RTCClosed Real Time Charging. Also known as an Online Charging System (OCS), a system that allows service providers to charge customers in real time, based on their service usage.) system, which in turn adds the top-up usageClosed The consumption of services, for example a subscriber using call minutes. to the relevant SubscriptionClosed A billing entity that incurs a charge. Examples include a network attached device whose usage you want to measure and charge for, or a monthly software subscription. This supplemental usage is known as the Basket.

Any external payments can be recorded in CMPClosed Converged Monetisation Platform. The MDS Global product that supports customer care and billing for digital service providers. against an overriding posting accountClosed In the Cloud Monetisation Platform, a billing entity that can be used to manage payments on one or more subscriptions or payments for services. An account can hold details such as payments or invoices. (general ledger for the company) which can consist of multiple Subscriptions. It is possible for a parent Subscription related to this post-pay Account to top up other Subscriptions under that Account, provided the Account is not in credit control.

If an Account is in credit control, no purchase activity is allowed on the Account, even for pre-paid Subscriptions.

It is configurable whether payments are recorded against the customerClosed In the context of the Cloud Monetisation Platform, an individual or organisation who has signed an agreement to take goods and services from a service provider. A customer receives a bill associated with one or more subscriptions, and can be a single end user or a large company with many subscriptions assigned to one agreement. Accounts or the overriding Posting Account.

PurchaseProduct Request

The PurchaseProduct tag instructs the Basket Service to enable an external application to purchase one-off offers from the RTC system and to take payments for those products via an external payment provider. This request contains the following elements:

Element Name

Content Type

Description

Required?

ExternalReference

String69

The client may use this identifier to correlate the request and the response.

Optional

SubscriptionNumber

Integer8

Indicates the unique system generated Subscription Number.

Mandatory

ReloadMethod

String6

Reload Method is primarily used to indicate where the charge for the reload will go.

A reload can be linked to multiple reload methods, so it is possible to have a situation where one reload method has an overriding Account and another doesn't (i.e. goes directly to the customer's Account).

Mandatory

TransactionReference

String20

This is used to store the transaction reference of the payment.

If this element is populated, it needs to be stored on the Purchase Reference field on the CMP Event Reload file.

Optional

PaymentDetails

Container

See PaymentDetails Request Container for details.

Optional

PurchaseOffers

Container

See PurchaseOffers Request Container for details.

Mandatory

Synchronous

Boolean

Indicates if the purchase should be made synchronously or asynchronously

If the 'synchronous' parameter is not specified in the request the default will be to execute synchronously.

Optional

AuditRecord

Container

See AuditRecord Request Container for details.

Optional

PaymentDetails Request Container

The PaymentDetails request container has the following elements:

Element Name

Content Type

Description

Required?

TransactionReference

String20

This is used to store the Transaction Reference of the payment.

Optional

PaymentReference

String40

Third Party payment reference, normally this is set with the payment reference returned from the payment provider.

Optional

CardReference

String30

The tokenised string representing the card.

Optional

TransactionDateTime

dateTime

Transaction date. Defaults to current date/time.

Mandatory

CurrencyCode

String

ISO 4217 Currency code (e.g. GBP, EUR, USD)

Mandatory

PaymentType

String6

Indicates nature of payment e.g. credit card, direct debit, cheque.

Mandatory

CardNumber

String20

The final 4 digits of the number of the credit card used to make the payment.

Optional

StartDate

Container

See StartDate Container for details.

Optional

ExpiryDate

Container

See ExpiryDate Container for details.

Optional

NameOnCard

String20

The cardholder's name as it appears on the card.

Optional

AVSHouseStreetNumber

String25

The Address of the cardholder.

Optional

PostCode

String10

Postcode of the cardholder.

Optional

CountryCode

String2

The Number Code for the country where the cardholder resides.

Optional

ReasonCode

String4

Reason Codes are four-character reason identifiers which are used in conjunction with Reason Types for the initiation of any workflow within CMP.

Optional

ProductService

String30

This allows the payment description to be captured.

Optional

AuthorisationCode

String6

Obtained by the client application from the Payment Provider to indicate the payment was approved.

Optional

StartDate Container

The StartDate request container has the following elements:

Element Name

Content Type

Description

Required?

Month

String6

Valid Month Start Date on the card.

MM

Mandatory

Year

Integer2

Valid Year Start Date on the card.

YY

Mandatory

ExpiryDate Container

The ExpiryDate request container has the following elements:

Element Name

Content Type

Description

Required?

Month

String6

Valid Month Start Date on the card.

MM

Mandatory

Year

Integer2

Valid Year Start Date on the card.

YY

Mandatory

PurchaseOffers Request Container

The PurchaseOffers request container has the following elements:

Element Name

Content Type

Description

Required?

ReloadOption

String6

This represents the reload option(s) being purchased.

Mandatory

Price

Currency (Decimal)

The price to be charged for the reload.

Optional

AuditRecord Request Container

The AuditRecord request container has the following elements:

Element Name

Content Type

Description

Required?

UserID

String10

User ID associated with the profile. This is the ID which the calling program adds to the records that are created.

Mandatory

Program

String10

The Program Name should be hard coded in the calling application to uniquely identify that application.

Mandatory

Sample PurchaseProduct Request
<PurchaseProducts>
<ExternalReference> </ExternalReference>
<SubscriptionNumber></SubscriptionNumber> <!--- Mandatory , represents the subscription to apply the reload(s) to --->
<!--Optional-->
<TransactionReference> </TransactionReference> <!--- Transaction Reference of payment, to be stored on Reload History. Only needed if you do not have all payment details at time of invoking web service --->
<ReloadMethod> </ReloadMethod> <!--- Mandatory , applies to all the reload option(s) in this request - indicate if charge is to be applied to bucket or customer account -->
<PaymentDetails>
<!--You may enter the following 15 items in any order-->
<!--Optional:-->
<TransactionReference>?</TransactionReference>
<!--Optional:-->
<PaymentReference>?</PaymentReference>
<!--Optional:-->
<PaymentType> </PaymentType>
<!--Optional:-->
<CardReference>?</CardReference>
<TransactionDateTime>?</TransactionDateTime>
<CurrencyCode>?</CurrencyCode>
<!--Optional:-->
<CardNumber>?</CardNumber>
<!--Optional:-->
<StartDate>
<Month>?</Month>
<Year>?</Year>
</StartDate>
<!--Optional:-->
<ExpiryDate>
<Month>?</Month>
<Year>?</Year>
</ExpiryDate>
<!--Optional:-->
<NameOnCard>?</NameOnCard>
<!--Optional:-->
<AVSHouseStreetNumber>?</AVSHouseStreetNumber>
<!--Optional:-->
<PostCode>?</PostCode>
<!--Optional:-->
<CountryCode>?</CountryCode>
<!--Optional:-->
<ReasonCode>?</ReasonCode>
<!--Optional:-->
<ProductService>?</ProductService>
<!--Optional:-->
<AuthorisationCode>?</AuthorisationCode>
</PaymentDetails>
<PurchaseOffers>
<!--Min 1 Max 5-->
<PurchaseOffer> <!-- This will contain the CMP Reload option(s) to apply -->
<ReloadOption> </ReloadOption> <!-- Mandatory -->
<Price> </Price> <!-- Optional, if specified, this will override the CMP Reload Option Price -->
</PurchaseOffer>
<PurchaseOffers>
<!--Optional-->
<AuditRecord>
<UserID></UserID>
<Program></Program>
</AuditRecord>
</Purchase Products>

PurchaseProduct Response

The PurchaseProduct response is the response to the PurchaseProduct Request. This contains the following elements:

Element Name

Content Type

Description

Required?

ExternalReference

String69

Returned unmodified in the response. The client may use this identifier to correlate the request and the response.

Optional