OTT Voucher Deposit

OTT Voucher is a payment method allowing user to purchase vouchers at various outlets in South Africa.

The following method IDs are covered in this section:

ID

Name

Credit State

428

OTTVoucherDeposit

ExecutedByProvider

Payment method interaction type: Synchronous call (see Interaction Types).

Payment Flow

Customer perspective

  1. Customers buys the OTT Voucher Online
  2. Customer is at the merchant web site and proceeds to checkout (or wants to make a deposit)
  3. Customer selects Voucher or OTT as payment method
  4. Customer enters the voucher pin and submits
  5. Payment is performed

Merchant integration flow

862

Redirect Integration

not supported

Backend2Backend Integration

The following parameters are mandatory for this payment method and have to be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

MobilePhoneNumber

The customers mobile phone number

The following parameters are mandatory for this payment method and have to be provided in initiatePaymentRequest.specificPaymentAccountData:

key (value type, account type, required)

value

PIN

The PIN of the OTT voucher (the customer can find this on his purchased voucher).

serialNumber

The OTT voucher number (the customer can find this on his purchased voucher).

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
 <merchantID>YourTestMerchant</merchantID>
 <shopID>YourTestShop</shopID>
	<merchantTransactionID>192d0d8b-a82b-4680-80b2-255bc5608759</merchantTransactionID>
	<paymentMethodID>428</paymentMethodID>
	<amount currencyCode="ZAR">88.00</amount>
	<userID>192d0d8b-a82b-4680-80b2-255bc5608759</userID>
	<userData>
		<username>ob-pwmb</username>
		<firstname>ob-pwmb-fn</firstname>
		<lastname>ob-pwmb-ln</lastname>
		<currencyCode>USD</currencyCode>
		<email>[email protected]</email>
		<address>
			<street>test street</street>
			<houseName>test house name</houseName>
			<houseNumber>123</houseNumber>
			<houseNumberExtension>ABC</houseNumberExtension>
			<postalCode>1220</postalCode>
			<city>test city</city>
			<state>test state</state>
			<countryCode2>US</countryCode2>
			<telephoneNumber>123456789</telephoneNumber>
		</address>
		<dateOfBirth>1995-10-10T00:00:00</dateOfBirth>
		<gender>Male</gender>
		<identificationNumber>1442122d-5244-4617-bb23-932fbce2cbbe</identificationNumber>
	</userData>
	<userIP>127.0.0.1</userIP>
	<userSessionID>10a4a45a-5dd0-4c10-af5f-5dc8862dc481</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
		    <key>MobilePhoneNumber</key>
			<value>+4368120458290</value> 
		</data>
	</specificPaymentData>
	<paymentAccount>
		<specificPaymentAccountData>
			<data xsi:type="keyStringValuePair">
				<key>serialNumber</key>
				<value>e19cbb02-7d93-4ed6-9cc4-c4dc482c672e</value>
			</data>
			<data xsi:type="keyStringValuePair">
				<key>PIN</key>
				<value>309791484386</value>
			</data>
		</specificPaymentAccountData>
	</paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse successful payment:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
     <merchantID>YourTestMerchant</merchantID>
     <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>428</key>
            <value>OTTVoucherDeposit</value>
        </paymentMethod>
        <merchantTransactionID>192d0d8b-a82b-4680-80b2-255bc5608759</merchantTransactionID>
        <paymentID>b61d7f01-2398-479c-a802-57d283421075</paymentID>
        <userID>192d0d8b-a82b-4680-80b2-255bc5608759</userID>
        <paymentProvider>
            <key>198</key>
            <value>Adumo</value>
        </paymentProvider>
        <amount currencyCode="ZAR">88.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>1c5ddea0-d843-49e0-be70-1c6aabc744b5</id>
            <definition>
                <key>142</key>
                <value>ExecutedByProvider</value>
            </definition>
            <createdOn>2022-04-05T12:17:48.6103825Z</createdOn>
            <paymentStateDetails xsi:nil="true"></paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">6.66</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>cf0e895f-0db5-43d7-96a7-213319e48d1d</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>24462</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>a0c8921d-6ec6-4d25-8539-ccb7624221f2</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Possible States in the initiatePaymentResponse

Payment State

Description

  • *ExecutedByProvider** (142)

Success state

InitiateRequestProviderCommunicationErrorOccurred

Error state; Communication error during payment finalization

InitiateRefusedByProvider

Error state; Provider refused the initiation of the voucher

InitiateErrorReportedByProvider

Error state; Provider reported an error during the initiation of the voucher

ExecuteRequestSentToProviderCommunicationErrorOccured

Error state; Communication error during payment finalization

RefusedByProvider

Error state; Provider refused the redemption of the voucher

ExecuteErrorReportedByProvider

Error state; Provider reported an error during the redemption of the voucher

State Diagram

733

Test cases

To test an OTT Voucher Deposit the following values need to be used:

  • MobilePhoneNumber - some number, e.g. +4368120458290
  • serialNumber - some GUID
  • PIN - some string, e.g. 309791484386

At the moment, it is not possible to simulate error scenarios for this payment method. Any value sent will result in a successful payment.