- Home
- /
- Inbound Payments
- /
- Pay Now Solutions
- /
- Pay Now eCommerce
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:
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
- Specify the payment options you require on application for the service.
- Issue a Pay Now service key on the Netcash account;
- Choose the payment options and
- Insert the postback URL’s.
- Download the Quick Start Guide here
- NOTE: If you developing on behalf of a Netcash client, supply the client with the postback URL’s they need to insert in your NetConnector profile for you to consume before the transaction is processed.
- Recommended Implementation Methodology:
Develop the form POST method from your system with attribute target=”_top” to send the payment instruction to https://paynow.netcash.co.za/site/paynow.aspx to open the link in the full body of the current window.- Alternatively, develop the form POST method from your system with no target attribute to send the payment instruction to open https://paynow.netcash.co.za/site/paynow.aspx in itself. (NB! This method is not advisable due to cross-browser compatibility especially for Microsoft Edge and Apple Safari browsers – read more)
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.
-
- Download the Pay Now logos to use on your payment gateway pages in your eCommerce store.
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.
- Read more about postback frequencies
These postback URLs perform two (2) functions namely:
- They send data back to the host system about the transaction, especially useful for real-time notifications/allocation of credits.
- Once the transaction is processed, the status and the transactional data of the payment gets redirected to two pages:
- The Notify URL always receives all the transaction data but it is not client-facing -and
- The Accept -or Decline URL depending on the transaction result.
- Once the transaction is processed, the status and the transactional data of the payment gets redirected to two pages:
- 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.
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.
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.
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.


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

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 |
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