Transfer Transaction Command

The amount for the goods or services being purchased is to be sent along in the request, as shown below. A unique payment reference or transfer code will be generated, which the customer will use to complete the payment via their mobile banking app or USSD. The terminal will poll for confirmation of the payment, and once the transfer is successfully received, the transaction will be marked as completed and a response returned.

Sample Request

<request>
<command>purchase</command>
<amount>5000</amount>
<paymentOption>transfer</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>transfer</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>transfer</PaymentOption>
<CardScheme>...</CardScheme>
</transResponse>

What’s Next