Currently set to Index
Currently set to Follow

Pay Now eCommerce

Overview

Pay Now eCommerce is a  that can be integrated to receive payments. We offer 3D secure Credit Card payments via Mastercard, Visa, American Express, and Diners Club, Instant EFT, Bank EFT, Retail payments. (see test card details here) Our Scan to Pay feature allows multiple wallets and banking applications to scan a single QR code for payment.

Also see:

Web Service Methods

The list of Netcash web service methods can be found here

Quick Start Guides

Quick Start Guides will help you understand this service and get you started

Programmers Guide

Please download the suggested API integration process flow document and use it as a reference when developing.

Kindly adhere to the Netcash brand guidelines when developing when developing

Service set up process

IMPORTANT: Do not process the form post in an iFrame -or embedded into any other page/system source; as certain services will not process unless opened in a parent window due to banking regulations -and/or security protocols.

Credit Card transaction processing notice

Please take note that any new Pay Now eCommerce service has a default transaction limit of R100.00. If the transaction limit (ZAR value) is exceeded – Credit Card payment options will not display. Contact your Netcash Payments Advisor for assistance.

The payment methods available and descriptions on the Pay Now service are available here or see the visual representation here.

Read more about the different payment methods we offer.

Pay Now service key

The service key is used to authenticate access to the Pay Now service. It identifies the origin of the payment instruction. It identifies the origin of the payment instruction. The service key determines the Netcash account to which the proceeds of the payment will be credited and what payment options are available to the customer.

NetConnector

The NetConnector profile settings allow customization according to specific requirements:

  • Active: Indicates the service setting.
  • Email: This is the email address to which any errors in processing will be directed and also to which the service key will be sent. Notifications of transactions will also be received here.
  • Service Key: This is the unique service key (field m1) that must be included in the POST to the Netcash URL.
  • Allow Master and Visa payments: This option is used to control whether your client may pay by credit card.
  • Accept URL: Enter your accept URL here. If the URL changes for any reason, it can be updated on this page. This is the URL that the browser is sent to if the transaction is successful.
  • Decline URL: Enter your decline URL here. If the URL changes for any reason, it can be updated on this page. This is the URL that the browser is sent to if the transaction is declined.
  • Notify URL: This is the URL that Netcash will call for all transactions to indicate payment status. It is also used for offline transactions such as Bank EFT and Retail payments where the payment is not processed in real-time. These payments will be posted when they are made and Netcash will notify your system through this URL. Read more
  • Redirect URL: This is the URL that the browser is sent to once the complete button is clicked on the Bank EFT and Retail payment screens on Netcash. This could/would return the customer to your site while you are waiting for a payment to be made.
  • Make test mode active: use this setting while you are testing the system to simulate transactions. Once your development is complete, this box should be un-ticked
  • In TEST MODE use the following credit card numbers for testing:

Test credit card details

The following test card details may be used while the NetConnector profile setting is in “TEST MODE” to simulate the process. If the profile setting is not in test mode, charges will be levied for each transaction.

Visa Successful
Visa Card Number 4000000000000002
Expiry Date Any future date (MMYY)
CVC/CVV/CVD 123
MasterCard Successful
Master Card Number 5200000000000015
Expiry Date Any future date (MMYY)
CVC/CVV/CVD 123
Visa Failed
Visa Card Number 4000000000000036
Expiry Date Any future date (MMYY)
CVC/CVV/CVD 123
MasterCard Failed
Master Card Number 5200000000000049
Expiry Date Any future date (MMYY)
CVC/CVV/CVD 123

Configure Netcash – Pay Now service key variables:

Select Account Profile -> NetConnector -> Pay Now in your Netcash account to configure your Pay Now variables.

Pre-defined postback URLs


The Pay Now configuration allows the configuration of pre-defined postback URL groups.

These postback URLs perform two (2) functions namely:

  1. They send data back to the host system about the transaction, especially useful for real-time notifications/allocation of credits.
    1. Once the transaction is processed, the status and the transactional data of the payment gets redirected to two pages:
      1. The Notify URL always receives all the transaction data but it is not client-facing -and
      2. The Accept -or Decline URL depending on the transaction result.
  2. The Accept -or Decline URL redirects the person making the payment, to a visual display of the transaction status once the transaction is completed.

You will note a Redirect URL in the list as well. This URL is used when the user click’s the CANCEL PAYMENT button on the payment page, or when the user selects a non-real-time payment.

Read more about pre-defined postback URL groups here.

Pre-defined URLs not set

Netcash allows ISV’s to use default postbacks for their clients by adding them to a dropdown list. This will minimize the risk of incorrect postbacks. It should only be used where all clients have the same postback URLs.

Pre-defined URL selection

In the above example, Netcash will send the responses to the centralized server and the client simply selects the software from the drop-down list and Netcash directs the postback data.

 

 

Netcash has enabled a testing facility so that you may view the data posted. Simply login to your Netcash account, select Account Profile -> NetConnector -> Pay Now -> Edit and place the gateway into “Test Mode” by selecting the tickbox and then click SUBMIT.

If your Pre-defined URL group does not change, click EDIT again and select Integration testing then click SUBMIT

In the above example, Netcash will automatically send the responses to the testing pages located at

  • https://api.netcash.co.za/inbound-payments/pay-now/accept-response
  • https://api.netcash.co.za/inbound-payments/pay-now/declined-response
  • https://api.netcash.co.za/inbound-payments/pay-now/redirect-response
  • https://api.netcash.co.za/inbound-payments/pay-now/notify-response

Note that these testing pages are only activated if the Pay Now profile setting is placed in “Test mode” and/or if the Integration testing Pre-defined URL group is manually selected.

POST to the Pay Now page:

See the recommended implementation methodology here.
These parameters are required by the Pay Now system when submitting a transaction. Although data is not mandatory for all the fields; all the fields must be passed in the form post.

Field No: Field Name: Length: Alpha / Numeric Data Mandatory Description:
1 m1 36 AN Yes Pay Now service key.
2 m2 36 AN Yes The key issued by Netcash to identify the software origin of transactions. (only used by Netcash ISV‘s else use the default value: 24ade73c-98cf-47b3-99be-cc7b867b3080)
3 p2 25 AN Yes This is a unique reference that you will assign to each transaction. This reference should only ever be used once.
4 p3* 50 AN Yes The description of the goods sent for payment for your internal reference.
(** see tip below)
5 p4 6.2 N Yes Transaction amount that is to be settled to the card must be in South African Rand (ZAR)
6 Budget 1 AN Yes Y/N
7 m4** 999 AN No Extra field that can contain any data that you require to be returned once the settlement has been done.
(** see tip below)
8 m5 50 AN No Extra field that can contain any data that you require to be returned once the settlement has been done.
9 m6 50 AN No Extra field that can contain any data that you require to be returned once the settlement has been done.
10 m9 100 AN No Card holders email address should you want an email sent to the cardholder.
11 m11 10 N No Card holders mobile number.eg. 0812345678
12 m10 100 AN No Any text sent in this parameter is returned to the Accept and Decline return URL’s. This is usually used with basket products like OSCommerce and VirtueMart.
13 ! m14 1 N No Tokenize Credit Card
0 = do not return credit card token
1 = return credit card token
14 m15 36 AN No Credit card token for subscription cards
15 m16 1 N No Subscription indicator
0 = No
1 = Yes
16 m17 2 N No Number of cycles for a subscription payment
17 m18 1 N No Subscription frequency
1 = Monthly
2 = Weekly
3 = Bi-weekly
4 = Quarterly
5 = Six monthly
6 = Annually
7 = Daily
18 m19 8 N No Subscription start date
CCYY-MM-DD
19 m20 N No Subscription recurring amount
Can differ from initial 3D Secure  payment
20 m21 1 N No Split payment indicator **Note
0 = No
1 = Yes
21 m22 11 N No Account number of Netcash target account
22 m23 N No Fixed value to be paid to target account
23 m24 N No Percentage of the total value to be paid to target account
24 m25 N No Split minimum amount
25 m26 N No Split maximum amount
**Note
This indicator will create the split payment transactions but each transaction still needs to be manually authorized by a user on the Netcash account.
If M21 = 1 then M22 and:
M23 or M24 and M25 or M26 are compulsory.

Netcash will authenticate the Pay Now service key in field m1.
Only if the key is successfully authenticated, will the payer be directed to the payment method selection page.

Tokenization will not occur if the Pay Now profile is set to Test Mode active.

Subscription billing is available for Visa and MasterCard only.

TIPS

  • * Add the purchasers name and the order/invoice number in brackets after the description to easily identify the transaction on your Netcash statement without referencing Pay Now transaction reports.
  • ** Add the debtors reference in this field not displayed on the Netcash on-screen statement, but is downloadable using the Netcash statement download.

Additional data

  • See the recommended implementation methodology here.
  • Ensure that the amount includes both decimals and no more than 2.
  • Any data which you need to be returned in the Notify, Accept or Decline post should be included in m4, m5 or m6.
  • Data in these fields will be returned in the Extra1, Extra2 and Extra3 fields of the post and in the export of your Netcash statement for reconciliation purposes.

Example

<form name="form" id="x1" method="POST" action="https://paynow.netcash.co.za/site/paynow.aspx" target="_top"> <!---Form POST **--->
  <input type="text" name="M1" value="7XXX34c4-XXX-40X8-9f1d-7fbXXXX830d3">  <!--- YOUR PAY NOW SERVICE KEY GOES IN HERE --->
  <input type="text" name="M2" value="24ade73c-98cf-47b3-99be-cc7b867b3080">  <!--- SOFTWARE VENDOR KEY GOES IN HERE --->
  <input type="text" name="p2" value="ID:123">                                <!---Unique ID for this / each transaction--->
  <input type="text" name="p3"  value="Test / Demo goods">                    <!---Description of goods being purchased--->
  <input type="text" name="p4" value="5.00">                                  <!---Amount to be settled / paid--->
  <input type="text" name="Budget" value="Y">                                 <!---Compulsory should be Y--->
  <input type="text" name="m4" value="Extra 1">                               <!---This is an extra field ***--->
  <input type="text" name="m5" value="Extra 2">                               <!---This is an extra field ***--->
  <input type="text" name="m6" value="Extra 3">                               <!---This is an extra field ***--->
  <input type="text" name="m9" value="myemail@email.net">                     <!---Card holders email address--->
  <input type="text" name="m11" value="0812345678">                           <!---Card holders mobile number--->
  <input type="text" name="m10" value="Demo attempt for testing">             <!---Dataset used by shopping carts i.e. OSCommerce--->
  <input type="text" name="m14" value="1">                                    <!---Request credit card subscription token 0 = no | 1 = yes--->
  <input type="text" name="m15" value="11ad173c-9d3f-43b3-19se-as7b865e3099"> <!---Credit card token for subscription cards--->
  <input type="text" name="m16" value="1">                                    <!---Subscription indicator 0 = no | 1 = yes--->
  <input type="text" name="m17" value="6">                                    <!---Number of cycles for subscription payment--->
  <input type="text" name="m18" value="1">                                    <!---Subscription frequency--->
  <input type="text" name="m19" value="2021-01-01">                           <!---Subscription start date --->
  <input type="text" name="m20" value="15.00">                                <!---Subscription recurring amount--->
  <input name="submit" type="submit" value="PAY">                             <!---Submit button--->
</form>

VERY IMPORTANT

  • ** POST must be to a Parent Window – target=”_top” – not in an iFrame. Netcash inserts some Pay Now services in an iFrame from our suppliers for security reasons. Generally browsers do not allow for iFrame within an iFrame on the same page. See Cross Frame Scripting article as to why not.
  • *** extra field – you can place any data in the extra field which will be returned

Shopping Cart Plugins

Your Netcash account is already integrated into various free online shopping cart plugins and we also support customised integration.

Pay Now payment selections


click image for a demonstration

 

  • The payer selects the method of payment (credit card in this example) and is directed to the payment input page.

The payer is then redirected to the bank 3D Secure input screen where they enter the OTP sent to their email or mobile device to authorize the transaction.

If the payer selects Retail, the following is displayed which they can print, email or SMS to make a retail payment

When paying via BANK EFT the following is displayed to enable the payer to make an EFT payment

The EFT payment details are displayed with a unique deposit reference which must be used to make the EFT payment.

Notify, Accept, Decline and Redirect pages

After the transaction is complete the following data is returned to the respective pages which were configured in the Pay Now service key. Read more about the Postback URL.
It is advisable that developers reconcile (indicate payment status) from the data sent to the NOTIFY URL.
This URL is called for all transactions asynchronously. Unlike Instant EFT and Credit Card services, delayed services like Retail -and Bank EFT do not call the Accept and Decline URL, however, all payment type notifications are sent to the Notify URL.
Netcash will retry a number of times before it is noted as not received.
The Notify data should be used for system updates whereas Accept and Decline URLs are to be used to synchronously update the Buyer on the status of the transaction.

TIP: Remove the [FromUri] attribute from your endpoint signature.

 

Payment Notification

Read more about the postback URL‘s and their functions here to get a better understanding of how notifications are presented back to your system.

 

 

Acceptable URL Format


When the Accept, Decline or Notify URLs are called, any data provided in the M10 field will be appended to the URL. URLs that already contain query parameters are not supported and may lead to invalid URLs being formed. Do not include query parameters in the URLs using the query separator (“?” in the URL).

Example:

M10 field content: Value1=1&Value2=extra
Merchant URL: https://cart.merchant.site/complete.aspx
Final URL: https://cart.merchant.site/complete.aspx?Value1=1&Value2=extra

The M10 field can be used for any additional transaction identifying information. Ensure that the contents of the M10 field are acceptable URL query parameters. Also consider using the Extra1 (M4), Extra2 (M5) or Extra3 (M6) fields for similar information.

Notify URL


Data URL is form POST.

content-type: application/x-www-form-urlencoded

Field No: Field Name: Alpha / Numeric / Boolean Description:
1 TransactionAccepted B “true” means the transaction was successful
2 CardHolderIpAddr AN This is the original IP the request was made from
3 RequestTrace AN This is a unique trace id for the transaction. This id can be used to retrieve additional information from the 3rd Party transaction logs
4 Reference AN The unique reference sent to Netcash in the original request
5 Extra1 AN The extra field sent in the m4 variable when you made the request.
6 Extra2 AN The extra field sent in the m5 variable when you made the request.
7 Extra3 AN The extra field sent in the m6 variable when you made the request.
8 Amount N This is the amount sent to Netcash in the original request
9 Method N 1 Credit card
2 Bank EFT
3 Retail
4 Instant EFT
5 MasterPass
6 Visa Click to Pay
7 Masterpass Scan to Pay
10 ccToken AN Credit Card Vault GUiD
11 ccHolder AN Credit Cardholder name
12 ccMasked AN Masked Credit Card number
13 ccExpiry N Credit Card expiry date MMCCYY

Accept URL


Field No: Field Name: Alpha / Numeric / Boolean Description:
1 TransactionAccepted B “true” means the transaction was successful
2 CardHolderIpAddr AN The original IP the request was made from
3 RequestTrace AN A unique trace id for the transaction. This ID can be used to retrieve additional information from the 3rd Party transaction logs
4 Reference AN The unique reference sent Netcash in the original request
5 Extra1 AN The extra field sent in the m4 variable with the original request.
6 Extra2 AN The extra field sent in the m5 variable with the original request.
7 Extra3 AN The extra field sent in the m6 variable with the original request.
8 Amount N The amount sent to Netcash in the original request
9 Method N Returns 2 for EFT
Returns 3 for Retail
10 ccToken AN Credit Card Vault GUiD
11 ccHolder AN Credit Cardholder name
12 ccMasked AN Masked Credit Card number
13 ccExpiry N Credit Card expiry date MMCCYY

Decline URL


Field No: Field Name: Alpha / Numeric / Boolean Description:
1 TransactionAccepted B “false” means the transaction was not successful
2 CardHolderIpAddr AN This is the original IP the request was made from
3 RequestTrace AN This is a unique trace id for the transaction. This id can be used to retrieve additional information from the 3rd Party transaction logs
4 Reference AN This is the unique reference that you sent Netcash in the original request
5 Extra1 AN This is the extra field you sent up in the m4 variable when you made the request that we return for you to integrate into your own system.
6 Extra2 AN This is the extra field you sent up in the m5 variable when you made the request that we return for you to integrate into your own system.
7 Extra3 AN This is the extra field you sent up in the m6 variable when you made the request that we return for you to integrate into your own system.
8 Amount N The amount sent to Netcash in the original request
9 Reason AN This is the unpaid reason

Redirect URL


Field No: Field Name: Alpha / Numeric / Boolean Description:
1 TransactionAccepted B “false” means the transaction was not successful
2 CardHolderIpAddr AN This is the original IP the request was made from
3 RequestTrace AN This is a unique trace id for the transaction. This id can be used to retrieve additional information from the 3rd Party transaction logs
4 Reference AN This is the unique reference that you sent Netcash in the original request
5 Extra1 AN This is the extra field you sent up in the m4 variable when you made the request that we return for you to integrate into your own system.
6 Extra2 AN This is the extra field you sent up in the m5 variable when you made the request that we return for you to integrate into your own system.
7 Extra3 AN This is the extra field you sent up in the m6 variable when you made the request that we return for you to integrate into your own system.
8 Amount N The amount sent to Netcash in the original request
9 Reason AN “Pending EFT Payment” or “Pending Retail payment”
10 Method N Returns 2 for EFT
Returns 3 for Retail

Unpaid reason codes

Click here for a complete list of unpaid reason codes

Transaction trace

After the transaction has been received by your servers it is advisable to compare it with the original data sent. This can be done by sending a request that contains the ‘RequestTrace’ parameter to our servers that will return the transaction data to the calling service. Call URL: https://ws.netcash.co.za/PayNow/TransactionStatus/Check?RequestTrace=114.228862205218 where 114.228862205218 represents the ‘RequestTrace’ parameter and it would reply with a JSON string with the data that would look like this:

{“RequestTrace”:”114.228862205218″,”Amount”:”4.00″,”TransactionAccepted”:false,”Reference”:”22″,”Reason”:”Invalid card number”}

Testing

See Testing section for more details. If you require any integration assistance contact our technical support team

Version 2020.1

Copyright © 2022 Netcash (PTY) Ltd

Programmers Guide