Step 2: Create Request

This is where you pass all the information regarding your request.


Table Template
Url /secure/request/create
Method POST
Headers See Common Headers
URL Params N/A
Data Params
Name Type Req Description
SiteCode string (50) Y A unique code for the site currently in use. A site code is generated when adding a site in the Ozow Merchant Admin section.
CountryCode string (2) Y The ISO 3166-1 alpha-2 code for the user's country. The country code will determine which banks will be displayed to the customer.
CurrencyCode string (3) Y The ISO 4217 3 letter code for the transaction currency. Please note only South African Rand (ZAR) is currently supported by Ozow, so any currency conversion would have to take place before submitting the create request.
Amount decimal (9,2) Y The transaction amount. The amount is in the currency specified by the currency code posted.
TransactionReference string (50) Y The merchant's reference for the transaction.
BankReference string (20) Y This is the reference that will appear on your bank statement. It is advised that this is set to a unique value that enables you to match payments on your statement to transactions on your system. *Only alphanumeric characters, spaces and dashes are allowed.

Optional1

Optional2

Optional3

Optional4

Optional5

string (50) N Optional 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.
Customer string (100) N The customer’s name or identifier. Can be used to track customer behaviour.
NotifyUrl string (150) Y

The URL that Ozow should post the notification result to. The result will posted regardless of the outcome of the transaction. This URL can also be set for the applicable merchant site in the merchant admin section if it does not need to be dynamic. If a value is set in the merchant admin and in the request, the notification result will be sent to the URL set in the request.

* The outcome of pending transactions also gets posted to this URL.

IsTest bool Y Only false currently works for the payment API.
BankId guid N The bank that the payment should be made to. Merchant needs to be enabled to send through banking details (BankId, BankAccountNumber, BranchCode, BankAccountName) in the post, for most merchants this is setup when creating the merchant account. Possible values can be found in the bank list.
BankAccountNumber string (20) N The bank account number the payment should be made to.
BranchCode string (10) N The branch code for the bank account.
BankAccountName string (20) N The name of to be used for the bank account. Only alphanumeric characters and spaces allowed.
ProfileId guid N

Only available to certain merchants.

If ProfileId is passed through a Bank Messages response will be returned. See Bank Messages response object.

ProfileToken guid N The token for the ProfileId.
HashCheck string (250) Y SHA512 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 Object
Name Type Description
requestId guid The identifier for the request that was created.
error Error Object If an error occurred this object will have details regarding the error.
Request Example
               
POST https://api.ozow.com/secure/request/create HTTP/1.1
Authorization: Bearer x8EMsgirq_74...ddl-FW3vumkyTG0GfXudO9U
Accept: application/json
Content-Type: application/json
{  
    "SiteCode":"TSTSTE0001",
    "CountryCode":"ZA",
    "CurrencyCode":"ZAR",
    "Amount":"0.01",
    "TransactionReference":"TestApi",
    "BankReference":"TestApi",
    "Customer":"Api Test Customer",
    "NotifyUrl":"http://demo.ozow.com/notify.aspx",
    "IsTest":"false",
    "HashCheck":"f461ed21e54d2a23f71e7c130...4f54300bd54e36c4e0f"
}
              
            
Response Example
               
                {  
    "error":null,
    "requestId":"abf4a803-43a5-4a88-8031-4ba1d9068d92"
}
              
            

Generate Request Hash Check

Follow these steps to generate the hash check:

  1. Concatenate the post variables (excluding HashCheck) in the order they appear in the create request table.
  2. Append your private key to the concatenated string. Your private key can be found in merchant details section of the merchant admin site.
  3. Convert the concatenated string to lowercase.
  4. Generate a SHA512 hash of the lowercase concatenated string.

Hash Example

Here is an example of how a hash would be generated using the steps above and the values below.

SiteCodeTSTSTE0001
CountryCodeZA
CurrencyCodeZAR
Amount25.00
TransactionReference123
BankReferenceABC123
NotifyUrlhttp://demo.ozow.com/notify.aspx
IsTestfalse

  1. TSTSTE0001ZAZAR25.00123ABC123http://demo.ozow.com/notify.aspxfalse
  2. TSTSTE0001ZAZAR25.00123ABC123http://demo.ozow.com/notify.aspxfalse215114531AFF7134A94C88CEEA48E
  3. TSTSTE0001ZAZAR25.00123ABC123http://demo.ozow.com/notify.aspxfalse215114531AFF7134A94C88CEEA48E
  4. eedcba106cd8fef3ba6cec5ec80de7d7d7fc90343028bf95b908718c671d0fe885ca08b206d788de009d237a93c18e66edf6ede3f5ca7057e23474106465dcc6

Continue to Step 3: Get Banks