Bank Deposit API

Get Started

The Bank Deposit product is a system that provides an automated solution for allocating funds with the correct reference. This product allows a user to make payment using their mobile or online banking channel and reduce errors and delays in allocating the funds to the order or user account.

Before getting started you require the following:

Your Ozow merchant details:

  • Site code
  • Private key
  • API key

API Endpoints


API Contracts

Create Unique Reference (Single deposit)

URL: https://stagingapi.ozow.com/secure/banktransfer/single

HTTP Action: POST

Header Variables: Check header variables table below

Post Variables: Check post variables table below

Response: Check response table for unique reference below

Create Static Reference (Multi-deposit)

URL: https://stagingapi.ozow.com/secure/banktransfer/multiple

HTTP Action: POST

Header Variables: Check header variables table below

Post Variables:Check post variables table below. * Amount field is not applicable

Response: Check response table for static reference below

Get Banking Details (Multi-deposit)

URL: https://stagingapi.ozow.com/secure/banktransfer/bankingdetails/{bankreferenceid}

HTTP Action: GET

Header Variables: Check header variables table below

URL Variables (QueryString):

  • BankReferenceId – The identifier for the static reference created previously

Response: Json object - Check the banking details object below

Header Variables:

NameTypeReqDescription
ApiKeystring (50)YMerchant's API key, this value is available in the Ozow Merchant Admin section.
Content-Typestring(50)YThe format the response should be returned in e.g.
Accept: application/json
Accept: application/xml
Acceptstring(50)YThe format the response should be returned in e.g.
Accept: application/json
Accept: application/xml
Post data objectString (JSON / XML)YApplicable post variables found in post variables table below as either a serialized json object or XML element e.g. { “SiteCode”: “TSTSTE0001”, …, “HashCheck”: “6b46c27agfd4656fg3534gfd435”}

Post Variables:

PropertyTypeReq.Description
1.SiteCodeString (50)YesA unique code for the site currently in use. A site code is generated when adding a site in the Ozow merchant admin section.
2.CountryCodeString (2)YesThe ISO 3166-1 alpha-2 code for the user's country. The country code will determine which banks will be displayed to the customer. Please note only South African (ZA) banks are currently supported by Ozow.
3.CurrencyCodeString (3)YesThe ISO 4217 three-letter code for the transaction currency. Please note only the South African Rand (ZAR) is currently supported by Ozow, so any currency conversion must take place before posting to the Ozow site.
4.Amount
* Accepted but not applicable for static references (multi-deposit)
Decimal
(9,2)
YesThe transaction amount. The amount is in the currency specified by the currency code posted.

* For static references (multi-deposit) a zero can be passed or the variable can be excluded from the post object.
5.TransactionReferenceString (50)YesThe merchant's reference for the transaction.
7.Optional1
8.Optional2
9.Optional3
10.Optional4
11.Optional5
String (50)NoOptional fields the merchant can post for additional information they would need passed back in the response. These are also stored with the transaction details by Ozow and can be useful for filtering transactions in the merchant admin section.
12.CustomerString (100)NoThe customer’s name or identifier.
13.CancelUrlString (150)NoThe URL of the page that we should redirect to if the customer cancels the bank deposit flow.

* Only applicable when merchant redirects user to Ozow bank deposit URL (Future release). Cancelling the reference is also out of scope for this release.
15.SuccessUrlString (150) No The URL of the page that we should redirect if the customer completed the bank deposit flow. This does not mean the deposit was completed.

* Only applicable when merchant redirects user to Ozow bank deposit URL (Future release).
16.NotifyUrl String (150)NoThe URL that we should post the notification result to when the deposit has been received or the expiry date has been exceeded for a unique/single reference.
19.BankIdGuidNoOzow’s identifier for the bank, while this is not required it will help in future to make sure we return the correct instructions for the user.

Allowed values are:

• ABSA – 3284A0AD-BA78-4838-8C2B-102981286A2B
• Capitec – 913999FA-3A32-4E3D-82F0-A1DF7E9E4F7B
• FNB – 4816019C-3314-4C80-8B6B-B2CD16DCC4EC
• Nedbank – D3889DF6-CDAC-4861-9D64-2B100FB7ED07
• Standard Bank – AD7D8DA4-1723-4066-94BB-6662D845E483
• Investec – 4B45BE85-B616-4BD1-9027-F8FCF8F9AF7B
• African Bank – 33A0840B-0CF4-4B8C-86E0-EC6C4BE8C60E
• Tymebank – 28FCC8FA-985B-480B-82FD-7D09BC19C9D0
• Bidvest Bank Grow – E022DFC8-FF4A-4425-A074-C65D07E8F09C
24.ExpiryDateUtcString (19)NoPayment will not be allowed to be made after this date. Date should be UTC and value should be formatted as yyyy-MM-dd HH:mm e.g. 2015-08-11 16:02
29. CustomerCellString (20)NoMerchant can provide customer cellphone number for faster login on certain banks. DO NOT include in the hash check string, just ignore instead.
30.[HashCheck](https://hub.ozow.com/docs/step-post-from-merchant-website#hash-check-example)String (250) YesSHA512 hash used to ensure that certain fields in the message have not been altered after the hash was generated. Check the generate hash section below for more details on how to generate the hash.

Response Variables – Unique Reference (Single Deposit):

NameTypeDescription
TransactionIdstring (50)Ozow transaction identifier. Transaction will be in a pending state after it is created and will be updated to complete after the payment has been received in our account
BankingDetailsString (JSON / XML)Check the banking details object below
Urlstring(150)A URL that the user can be directed to where they will be displayed the banking details and instructions to use for the deposit
ErrorMessagestring(150)Error message generated when validating the request.

Response Variables – Static Reference (Multi-Deposit):

NameTypeDescription
BankDepositIdstring (50)Ozow identifier for the bank deposit static reference. A new transaction will be created for each deposit received.

* This id should be stored against the user so that the banking details can be queried
BankingDetailsString (JSON / XML)Check the banking details object below
Urlstring(150)A URL that the user can be directed to where they will be displayed the banking details and instructions to use for the deposit
ErrorMessagestring(150)Error message generated when validating the request.

Bank Details Object

NameTypeDescription
BankNamestring (50)Ozow identifier for the bank deposit static reference. A new transaction will be created for each deposit received.

* This id should be stored against the user so that the banking details can be queried
BranchCodeString (10)The destination branch code for the account
AccountNumberString (20)The Ozow account number to use for deposit
PublicRecipientNamestring(50)The name of the public recipient if applicable (depending whether a bankId was passed in the original request)
BeneficiaryReferencestring(20)The reference to be used for the deposit

What’s Next