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:

IDNameCredit State
428OTTVoucherDepositExecutedByProvider

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
MobilePhoneNumberThe 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
PINThe PIN of the OTT voucher (the customer can find this on his purchased voucher).
serialNumberThe 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 StateDescription
ExecutedByProvider (142)Success state
InitiateRequestProviderCommunicationErrorOccurredError state; Communication error during payment finalization
InitiateRefusedByProviderError state; Provider refused the initiation of the voucher
InitiateErrorReportedByProviderError state; Provider reported an error during the initiation of the voucher
ExecuteRequestSentToProviderCommunicationErrorOccuredError state; Communication error during payment finalization
RefusedByProviderError state; Provider refused the redemption of the voucher
ExecuteErrorReportedByProviderError 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.