USSD Transaction Command

This is used to initiate a USSD transaction on the POS terminal. The amount of goods purchase is to be sent along in the request as shown below. The transaction would be completed on the POS as the customer would be prompted to use in his / her mobile phone to complete the USSD transaction with the code printed on the POS receipt and transaction would be validated upstream for approval and a response is returned.

Sample Request

<request>
<command>purchase</command>
<amount>5000</amount>
<paymentOption>ussd</paymentOption>
<accounttype>savings</accounttype>
<staff>staff_001</staff>
<tillRef>TXN123456</tillRef>
<additionalData></additionalData>
<tillID>TILL_001</tillID>
</request>

Response Message field description

This field will vary depending on the transaction:

PropertyTypedefaultDescription
amountStringnullThe transaction amount as a string
paymentOptionStringnullA string representing the payment method (case-insensitive)
accountTypeStringnullThe type of account used for the transaction
staffStringnullThe identifier for the staff member processing the transaction
commandStringnullThe command to execute for this transaction
tillRefStringnullA unique reference for the till transaction, enables reconciliation between Till systems and payment processing records and links the payment terminal response back to the specific Till that initiated the request
additionalInfoStringnullAny additional data or information for the transaction(example, loyalty points earned, promotional codes applied, merchant-specific data)
tillIDStringnullThe identifier of the till device

Sample Response (success)

The response for success: at least a port is returned

<transResponse>
<Stan>000003</Stan>
<RespMessage>transaction approved</RespMessage>
<RespCode>00</RespCode>
<Amount>5000</Amount>
<TerminalId>2056XYZ1</TerminalId>
<MaskedPan>...</MaskedPan>
<TransRef>...</TransRef>
<TillRef>TXN123456</TillRef>
<AdditionalTransactionInfo>...</AdditionalTransactionInfo>
<Staff>staff_001</Staff>
<RRN>...</RRN>
<PaymentOption>qr</PaymentOption>
<CardScheme>...</CardScheme>
</transResponse>

Sample Response (failure)

<transResponse>
<Stan>000003</Stan>
<RespMessage>insufficient funds</RespMessage>
<RespCode>51</RespCode>
<Amount>5000</Amount>
<TerminalId>2056XYZ1</TerminalId>
<MaskedPan>...</MaskedPan>
<TransRef>...</TransRef>
<TillRef>TXN123456</TillRef>
<AdditionalTransactionInfo>...</AdditionalTransactionInfo>
<Staff>staff_001</Staff>
<RRN>...</RRN>
<PaymentOption>ussd</PaymentOption>
<CardScheme>...</CardScheme>
</transResponse>