Smart EFT (Enterprise API)

This page serves as a supplementary guide for integrating Smart EFT secure into the payment flow and is to be read in conjunction with the PayU Enterprise API integration documentation.

 

PayU’s EFT payment option will allow customers to pay using their internet banking. The PayU Smart EFT service offering is instant* and available for customers who use one of the 4 supported banks (Nedbank, Standard Bank, First National Bank and ABSA). As soon as the customer makes the payment PayU will instantly notify the Merchant so goods can be released. There is no need to wait for several days for the funds to be cleared. Furthermore the PayU Smart EFT payment method does not require the Customer to sign up to or have an account with PayU.

Transactions can additionally be viewed on the PayU Merchant Portal. This portal will provide a view of all PayU EFT transactions and display the last status. This is the same transaction history PayU uses to formulate billing invoices, giving Merchants complete transparency and providing a platform for Merchants to perform reconcilation with their own transaction/order history.

*Currently Standard Bank is not instant

Banks Supported

Currently Smart EFT is only available through Nedbank, Standard Bank, First National Bank and ABSA. A Customer has the option of selecting the bank that they bank with to make the payment.

Test Details

The following test details can be used for testing against PayU's staging environment. For more information on the test phase to test please refer to the RPP integration guide.

- Store Details

Safekey: {07F70723-1B96-4B97-B891-7BF708594EEA}

SOAP Username: Staging Integration Store 3

SOAP Password: WSAUFbw6

 

- doTransaction amendments specific for EFT transactions

Eft.bankName = Any of the following values: STANDARD_BANK , FNB , NEDBANK , ABSA

Eft.amountInCents = Amount that needs to be paid via EFT

Smart EFT flows

Customer select EFT payment method on merchant

The customer will select EFT payment method on the merchant website.

Merchant will need to display a form displaying all supported banks from which the customer will select and then do a subsequent EFT payment against

PayU API calls

Once the customer has selected which bank the merchant's website will need to generate an request to the PayU API with the relevant transactions. The website will receive a response with the details of where the customer will need to deposit the monies into. This details will need to be displayed to the customer as they will need to do an EFT deposit against this details

doTransaction request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://soap.api.controller.web.payjar.com/"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    </soapenv:Header>
    <soapenv:Body>
        <soap:doTransaction>
            <Api>ONE_ZERO</Api>
            <Safekey>---safekey comes here---</Safekey>
            <TransactionType>PAYMENT</TransactionType>
            <AdditionalInformation>
                <merchantReference>merchantReference</merchantReference>
                <notificationUrl>http://example.com/returnUrlComesHere</notificationUrl>
            </AdditionalInformation>
            <Basket>
                <amountInCents>1000</amountInCents>
                <currencyCode>ZAR</currencyCode>
                <description>Basket Description</description>
            </Basket>
            <Customer>
                <firstName>John</firstName>
                <lastName>Doe</lastName>
                <mobile></mobile>
                <email>john.doe@example.com</email>
            </Customer>
            <Eft>
                <bankName>ABSA</bankName>
                <amountInCents>1000</amountInCents>
            </Eft>
        </soap:doTransaction>
    </soapenv:Body>
</soapenv:Envelope>

doTransaction response

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns2:doTransactionResponse xmlns:ns2="http://soap.api.controller.web.payjar.com/">
            <return>
                <merchantReference> merchantReference </merchantReference>
                <payUReference>1515603790203</payUReference>
                <paymentMethodsUsed xsi:type="ns2:eft" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                    <accountNumber>4077920871</accountNumber>
                    <accountType>Cheque</accountType>
                    <amountInCents>1000</amountInCents>
                    <bankName>ABSA</bankName>
                    <branchNumber>632005</branchNumber>
                    <currency>ZAR</currency>
                    <reference>SPEEFVCAGP</reference>
                    <timeLimit>168</timeLimit>
                </paymentMethodsUsed>
                <resultCode>00</resultCode>
                <resultMessage>Successful</resultMessage>
                <successful>true</successful>
            </return>
        </ns2:doTransactionResponse>
    </soap:Body>
</soap:Envelope>

Instant Payment Notification (IPN)

The following IPNs could potentially be sent to the merchant during the course of the transaction:

- NEW

Set Transaction is done but the customer does not started or completed the EFT payment option

- AWAITING_PAYMENT

Customer indicated on merchant website that they want to make an EFT payment and is yet to make payment

- SUCCESSFUL

The customer made the exact payment. i.e., the correct bank, correct reference and the correct amount

- EXPIRED

The customer did not make the correct payment in time

 

Now, if the customer does not make a correct payment, the EFT will be unmatched. The merchant will need to contact our call center and match the EFT. Once the EFT is matched by the PayU team, it can go into 1 of 3 states.

- SUCCESSFUL

The customer made the exact payment. i.e., the correct bank, correct reference and the correct amount

- PARTIAL_PAYMENT

If the customer paid less than the required amount.

- OVER_PAYMENT

If the customer paid more than the required amount.

 

IPN example:

<PaymentNotification Stage="false">

    <MerchantReference>QA_StagingPMT</MerchantReference>

    <TransactionType>PAYMENT</TransactionType>

    <TransactionState>SUCCESSFUL</TransactionState>

    <ResultCode>00</ResultCode>

    <ResultMessage>Successful</ResultMessage>

    <PayUReference>50977153859</PayUReference>

    <Basket>

        <Description>Basket</Description>

        <AmountInCents>10000</AmountInCents>

        <CurrencyCode>ZAR</CurrencyCode>

        <Products/>

    </Basket>

    <PaymentMethodsUsed>

        <Eft BankName="NEDBANK" AmountInCents="10000" Reference="EFTQMHYGYU" AccountNumber="1003669700" BranchNumber="145209" AccountType="Cheque" TimeLimit="168" Currency="ZAR"/>

    </PaymentMethodsUsed>

    <IpnExtraInfo>

        <ResponseHash>e946b8966a9524c5dd2b36ab2b1f92fc04662c450b89e1c18afa03ae734a67d</ResponseHash>

    </IpnExtraInfo>

</PaymentNotification>

Merchant Portal

 

The EFT transactions can be viewed through the PayU Merchant Portal. When a Merchant signs up for this Payment Method PayU will enable Smart EFT on the Merchant Portal. This will allow the Merchant to have a complete view of the transactions that were made on their site as well as the status of the transaction (if payment has been received, transaction has expired etc.)