Skip to content
Shahbaz Anjum edited this page Oct 18, 2023 · 12 revisions

AltaPay NetSuite Plugin

Through the partnership of AltaPay and NetSuite, we have made it much easier for you as merchant/developer to receive secure payments in your web shop. AltaPay is fully integrated with NetSuite platform via a bundle.

All you have to do is to install the bundle, which will only take a few minutes to complete.

Installation guide

Installing this plug-in will enable the web shop to handle card transactions through AltaPay's gateway.

Table of Contents

Installation

Configuration

Alternative Payment Methods

Payment Link

Address Verification System

Reconciliation

NetSuite Customer Center

FAQ

Installation

Installing this bundle will enable your web site to handle card transactions through AltaPay’s gateway.

Be aware that due to NetSuite limitations, if NetSuite is used as a front end, customers do not get informed if the transaction declines/fails. Only the merchant will be notified.

There are up to three steps involved in installing NetSuite:

  • Step 1. (required) - Install the bundle
  • Step 2. (required) - Get access to the Testgateway
  • Step 3. (optional) – if you need fraud protection. You must have an agreement with an external fraud partner, such as SCI ReD or MaxMind to use this feature.

Install the Bundle

Prerequisites

The bundle ‘Payment Gateways’ (ID 47196) needs to be installed on the merchant NetSuite account.

search_and_install_module

  1. Select the account, where you want to install AltaPay
  2. Go to: Customization > SuiteBundler > Search & Install bundles
  3. In the keywords field enter ‘AltaPay’
  4. Select ‘AltaPay’ (Bundle ID: 92258)
  5. Click Install.
  6. Follow the instructions. Note that this is a managed bundle and updates for the bundle are pushed from AltaPay.

Note
The procedure for MO/TO is the same as the above.

Enable the bundle
You have now installed the bundle, but before continuing the configuration you need to be sure that the bundle is enabled.

  1. Go to: Customization > Plug-ins > Manage Plug-ins.

    manage_plugins

  2. Check if the AltaPay bundle is enabled. If not, check the checkbox.

Configuration

You can configure the NetSuite plugin to meet your (merchant’s) needs. This includes adding payment methods and configuring payments.

Prerequisites

AltaPay provides the following, and they will be required to configure the plugin.

  • AltaPay credentials

    • Username
    • Password
  • AltaPay gateway information

    • Terminal
    • Gateway

Adding a payment method

The standard configuration connects the bundle with the test gateway. Follow the below steps to connect the bundle with AltaPay’s production gateway.

  1. Go to Customization > Plug-ins > Plug-in implementations.

  2. Click on ‘config.js’ in the AltaPay bundle.

  3. Click ‘Edit’ and replace 'testgateway.altapaysecure.com' with the gateway information for your production environment (provided by AltaPay). Do not include ’https’.

  4. Press Save.

    configuring_edit

    configuring_edit

Credit/debit cards

Note

3D Secure 2 is only supported on sites using SuiteCommerce or SuiteCommerce Advanced (SCA)

In this step you add card as payment method in the web shop. You must complete the steps for each currency.

  1. Go to setup > Accounting > Payment Processing Profiles > ‘Add AltaPay Plugin Profile’.

    altapay_plugin_profile
  2. Complete the details, using the notes below for guidance.

WEB SITE Select which web sites the bundle should cover.
NAME This is for internal use and will not be shown to customers. We recommend that you use ‘Payment Method - Currency’ (e.g. Credit Card - EUR).
Subsidiary Select from the drop-down list.
CHARGE CURRENCIES This must correspond with the currency of the terminal. You can only select one currency.
Settlement Bank account This is related to accounting and will not affect the settlement agreement with the acquirer.
Authentication Credentials Enter the username and password. You will only be able to see asterisks, since they are password fields.
AltaPay configuration Add terminal.
AltaPay 3DSecure Auth Enable this, if you want to enable AltaPay 3dsecure authentication. You should enable Authentications option from Gateway Request Types as well.
Alternative payment Leave the checkbox unchecked.
Gateway Request Types Add the types that are needed for the terminal. To process payments with 3D Secure v1 or v2, check the Authentications box in the Gateway Request Types.
  1. Press Save.

  2. Go to Setup > Accounting > Accounting lists > New > Select ‘Payment Method’.

    select_payment_method

  3. Complete the details, using the screenshot and notes below for guidance.

    complete_payment_method_details

PAYMENT METHOD Name the payment method. This will be shown in the web shop.
CREDIT CARD Select this checkbox.
SUPPORTING MERCHANT ACCOUNTS Select the Payment processing profile you want to match to the payment method. (NAME in the Payment Processing Profile screen).
Flag web/standard.
URL Place the icon in the File Cabinet and link to the icon or link to an icon on the internet .
  1. Press Save.

Next, you need to configure the payments. This is mandatory if CVC needs to be enabled for card payments. This is highly recommended and may be required by the acquirer.

  1. Go to Setup > Accounting > Accounting preferences > Click the tab ‘Items/Transactions’ .

    preferences_item_transactions

  2. Check ‘USE CARD SECURITY CODE FOR CREDIT CARD TRANSACTIONS’ under the ‘Payment Processing’ section

  3. Press Save.

Now, enable the payments on the website.

  1. Go to: Setup > Site Builder or Suite Commerce Advanced > Set Up Website

  2. Click edit on the website for which you want to enable payments.

  3. Click the ‘Shopping’ tab and check ‘REQUIRE AUTHORIZATION FOR CREDIT CARD TRANSACTIONS’.

    click_require_authorization

Press ‘Save’.

If the merchant has Suite Commerce Advanced version previous to Denali, you must enable support by completing these additional steps.

  1. Download the zip file from the GitHub repository

  2. Find the ‘Utils.js’ in the ‘SCA’ subfolder.

  3. Replace ‘AltaPay CC’,line no: 176, with the name of the payment method created earlier. The name is case sensitive.

  4. Go to: Documents > Files > File Cabinet

  5. Go to: Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. -Checkout 2.05.0 > Custom Checkout > js > src > core

    custom_checkout

  6. Click on ‘Add files’ and select the ‘Util.js’ that you modified.

  7. Replace the ‘img/altapay.jpg’ with an image that represents the payment method. The image can be uploaded from here: Documents > Files > File Cabinet and navigate to Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. - Checkout 2.05.0 > Custom Checkout -> img

  8. Go to: Documents > Files > File Cabinet > Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. - Checkout 2.05.0 > Custom Checkout > js > src > app > modules >

  9. Click on New Folder > name it Altapay

  10. Select SuiteCommerce Site Templates before saving the new folder in the TYPE dropdown

    suite_commerce

  11. Go to: Documents > Files > File Cabinet > Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. - Checkout 2.05.0 > Custom Checkout > js > src > app > modules > Altapay

  12. Click ‘Add files’ and select the ‘configuration.js’, that you modified

  13. Go to: Documents > Files > File Cabinet > Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. - Checkout 2.05.0 > Custom Checkout > js >

  14. Click ‘DELETE FILES’ and remove the following files: ‘Application-xxxxx.js’ and ‘current.js’

  15. Click ‘Edit’ for the ‘combiner.config’ Click on the ‘edit’ link

A popup opens > add the following string ’src/app/modules/Altapay/*.js’, as seen below

Input-files: utils/BootUtilities.js utils/json2.js libs/require.js libs/underscore.js

libs/jquery.js libs/backbone.js libs/backbone.validation.js libs/bootstrap.js

src/core/Documentation.js src/core/Utils.js src/core/ApplicationSkeleton.js

src/app/modules/BackToTop/.js src/core/extras/.js src/app/Application.js

src/app/Configuration.js src/app/ItemsKeyMapping.js src/app/modules/Account/*.js

src/app/modules/Address/.js src/app/modules/AjaxRequestsKiller/.js

src/app/modules/Cart/.js src/app/modules/Content/.js

src/app/modules/CMSadapter/.js src/app/modules/CreditCard/.js

src/app/modules/ErrorManagement/.js src/app/modules/GoogleAnalytics/.js

src/app/modules/GoogleUniversalAnalytics/*.js

src/app/modules/GoogleAdWords/.js src/app/modules/Facets/.js

src/app/modules/ItemDetails/*.js

src/app/modules/ItemOptionsHelper/.js src/app/modules/LoginRegister/.js

src/app/modules/Merchandising/*.js

src/app/modules/MultiCurrencySupport/*.js

src/app/modules/MultiHostSupport/.js src/app/modules/NavigationHelper/.js

src/app/modules/Order/.js src/app/modules/OrderWizard/.js src/app/modules/Profile/*.js

src/app/modules/SiteSearch/.js src/app/modules/Session/.js

src/app/modules/UrlHelper/.js src/app/modules/User/.js

src/app/modules/Altapay/.js src/app/modules/Wizard/.js

src/app/modules/CheckoutSkipLogin/.js src/app/modules/BrontoIntegration/.js Starter.js

Combined-file: Application.js

Keep-files: 1

Method: Minify

Referring-files: ../*.ssp

Version: 2

  1. Save the file and make sure that the ’Application-xxxx.js’ and ’current.js’ files have been regenerated.

Alternative payment methods

If you support alternative payment methods (e.g. wallet, ePayment etc.), you can add the alternative web shop’s payment methods by following the instructions below

Notes.

Alternative payment as gift cards and some invoice providers (Arvato) are not supported. Alternative payments are only available for web shops using SiteBuilder or SuiteCommerce Advanced with NetSuite version 16.1 or above. For each currency and payment method you need to go through steps described above.

  1. Go to setup > Accounting > Payment Processing Profiles > ‘Add AltaPay Plugin Profile’.

  2. Complete the details, using the screenshot and notes below for guidance.

    altapay_plugin_profile_2

Web Site Select which web sites the bundle should cover
Name Add ‘Name’. This is for internal use and will not be shown to customers. We recommend to name it ‘Payment Method - Currency’ (e.g. Invoice – EUR)
Subsidiary Select from the drop down list
Settlement Currency Select from the drop down list
CHARGE CURRENCIES This must correspond with the currency of the terminal. You can only select one currency
Settlement Bank account This is related to accounting and will not affect the settlement agreement with the acquirer
Authentication Credentials > Add username and password. You will only be able to see asterisks, since they are password fields
AltaPay configuration Add terminal.
Alternative payments Check this checkbox
Website Type the index of the website, that the payment processing profile is related to. Default is 1
AVS Accept Enter the AVS cases that should be accepted.

In order to control AVS cases, the checkbox “Enable AVS” must be clicked in the payment processing profile. Note that AVS must also be supported by the acquirer and is only supported by issuers in the US, Canada and UK.

Use uppercases and separate them by comma (e.g. A,B,D).

If an AVS result does not appear in Accept or Hold, the AVS result will be rejected and the order cancelled. If an AVS result is in both textboxes, the hold case has first priority.

AVS Hold Enter the AVS cases that should be put on hold.

Use uppercases and separate them by comma (e.g. A,B,D).

If an AVS result does not appear in Accept or Hold, the AVS result will be rejected and the order cancelled. If an AVS result is in both textboxes, the hold case has first priority.

  1. Press Save.

  2. Go to Setup > Accounting > Accounting lists > New

  3. Select ‘Payment Method’.

    new_payment_methods

Complete the details, using the screenshot and the notes below for guidance.

PAYMENT METHOD Name the payment method. This will be shown in the web shop
EXTERNAL CHECKOUT Check this checkbox
SUPPORTING MERCHANT ACCOUNTS Select the Payment processing profile you defined earlier that you want to match the payment method with
COUNTRIES Check ‘DISPLAY IN WEB SITE’
  1. Select the tab ‘Payment Visuals’
  2. Add flag, and URL with a picture that represents the payment method.
  3. Press Save.

Enable alternative payment in NetSuite

  1. Go to Setup > Side Builder/SCA > Setup web site.
  2. Select the web site to enable alternative payments
  3. Go to the shopping tab
  4. In the Payments Page, enable 'ALLOW NON-CREDIT CARD PAYMENT METHODS DURING CHECKOUT'.
  5. Press Save.

Add payment form

  1. Download the zip file from the GitHub repository
  2. Find the ‘ns_form.html’ in the ‘Alternative payments’ subfolder
  3. Go to: Documents > Files > File Cabinet > Web Hosting Files > Live Hosting > site
  4. Click on ‘Add file’ and select the ‘ns_form.html’

Apple Pay Integration

To integrate the Apple Pay payments in SCA follow the same steps mentioned in the Alternative Payment Methods except for enabling ALTERNATIVE PAYMENTS checkbox, enable APPLE PAY PAYMENTS checkbox from Altapay Configuration section and then follow below steps:

  1. Configure Extension Development Environment

    • Set up extension developer tools. See ‘Set Up Extension Developer Tools’ in NetSuite Help Center for more details.

      setup_extension_dev_tools

    • Fetch activated extensions from NetSuite account.

    • Download the zip file from the GitHub repository.

    • Copy the folder ‘IntegrateApplePay’ from Alternative payments > Apple Pay Integration and paste it into Workspace directory.

    • Deploy the extension.

  2. Activate and configure the extension

    • Navigate to Commerce > Extensions > Extension Manager and Activate the extension. activate_extension
    • To configure the extension navigate to Commerce > Websites > Configuration and select the Website and Domain and click on the Configure button.
    • Update the configurations in the AltaPay Apple Pay Configuration tab and Save the settings. apple_pay_configuration
  3. Add User Event on Sales Order

    • Navigate to Customization > Scripting > Scripts > New
    • Upload updatePaymentCustomData.js file from Alternative payments > Apple Pay Integration > User Events folder and click on Save. add_new_script
    • Click on Create Script Record button. create_script_record
    • Enter the script details. custom_data_details
    • Click on Deploy Script button. deploy_custom_script
    • Select the configurations make sure your script applies to order, status is released and execure role is administrator and then click on Save button. deploy_script_details

Payment Link

Enable Payment Link feature

To enable the Payment Link feature:

  • Navigate to Setup > Enables Features

  • Select Transactions subtab

  • Enable Payment Link checkbox

  • Click Save

    enable_payment_link

Configure Payment Link

To configure the payment link:

  • Go to Commerce > Payment Link

  • Fill out the listed fields for each category

  • Click Save

    payment_link

Email Invoice

To send the invoice to the customer

  • Open any invoice

  • Navigate to Communication subtab and click on Email button.

    email_invoice

  • Select email template from Message subtab

  • Click Merge & Send

    email_message

Customer will receive the invoice email with the payment link where he can choose the preferred payment method and complete the payment.

invoice_page

AVS

Address Verification System (AVS)

Prerequisites

AVS must also be supported by the acquirer and is only supported by issuers in the US, Canada and UK.

  1. Display the Payment Processing Profile.

  2. Complete the AVS details, using the screenshot and notes below for guidance.

    auth_credentials

Enable AVS Check the checkbox
AVS ACCEPT Enter the AVS cases that should be accepted, using uppercase, and separating them by commas (e.g. A,B,D) If an AVS result is not in either box (Accept or Hold), the AVS result will be rejected and the order cancelled. If an AVS result is in both textboxes, the hold case has first priority.
AVS HOLD Enter the AVS cases that need to be put on hold, using uppercase, and separating them by commas (e.g. A,B,D) If an AVS result is not in either box (Accept or Hold), the AVS result will be rejected and the order cancelled. If an AVS result is in both textboxes, the hold case has first priority.

Here is a list of AVS cases that can occur. As a merchant you will need to decide which cases should be accepted or put on hold. Otherwise the order will be rejected.

AVS Description
A Address matches, but zip code does not
B Street address matches, post code not verified due to incompatible formats
C Street address and postal code not verified for international transaction due to incompatible formats
D Street address and postal codes match for international transaction
E AVS not supported for this industry
F Full Match - Address and Zip/Postal Code match (UK Only)
G Address information is unavailable; international transaction; non-AVS participant
I Address information not verified for international transaction
M Street address and postal codes match for international transaction
N No Match on Address (Street) or Zip
P Postal codes match for international transaction. Street address not verified due to incompatible formats
Q Unknown response from issuer/banknet switch
R Retry. System unable to process
S AVS not supported for this industry
U Address information is unavailable
W Nine-digit zip code matches, but address does not
X Exact. Nine-digit zip code and address match
Y Yes. Five-digit zip code and address match
Z Five-digit zip code matches, but address does not

Reconciliation

Go to: Customization > Scripting > Scripts

There is several Scripts within NetSuite, so not all of these are related to the reconciliation process. Go to the script that has the name “Recon.js” and click either view or edit. Then there is a tab called “Execution log” and here you can find the log entries related to the funding’s files and funding files alone.

These log entries are needed when you have any problems with the reconciliation and need to contact AltaPay support.

Setting up reconciliation in NetSuite

To ensure that reconciliation entries related to orders are populated on the correct accounts, you must have a custom record for each active AltaPay Payment processing profile in NetSuite

AltaPay reconciliation > Reconciliation Setup > Setup Accounts.

reconciliation

Subsidiary Select the same subsidiary “Account for Payment and refunds” is related to
Terminal Name The terminal name must match the terminal on which orders need to be reconciled
ACCOUNT FOR PAYMENT AND REFUNDS select the account where entries are related to the order (payment, refund)
Other Asset Id Select the account where entries are related to the flow of the transactions (refund/payment rejected, chargebacks (representment, pre arbitration)) that isn’t capture/refunds
Transaction Type – Sales Orders Select the relevant record types that are related to Sales order
Transaction Type – Refund Select the relevant record types that are related to refund

There are also reconciliation entries that are not related to an order and need to be populated on a different account. Here you would need to add these record types and decide which account they should be populated on. This can be done here:

AltaPay reconciliation > Reconciliation Setup > Setup record type.

Then add these (these are case sensitive):

  • rolling
  • fee
  • adjustment
  • roundoff
  • not_found

Payment method:

Go to: Setup -> Accounting -> Accounting lists

Here the AltaPay payment methods should have the setting: “GROUP WITH UNDEPOSITED FUNDS”.

group_undeposited_funds

Uploading Funding Files

Download the funding files from the gateway. These can be found here: Finances > Funding files. Download the files that you want to reconcile.

Log in into NetSuite and then go to: AltaPay reconciliation > Import data > Upload files.

Click on the “Select file” and select a funding file that has been downloaded from AltaPay.

When the funding file is successfully uploaded, there will be a message “Funding files successfully handled” and there will be an option to upload another funding file. If the funding data couldn’t be populated within NetSuite, log entries will be shown, leading up to the error. For further details, see the log files.

NetSuite Customer Center

The AtaPay plugin is supported with the NetSuite-provided Customer Center portal, which gives access to the customers to place orders, request a return, view their transaction history, get quotes and make payment etc.

Enable Customer Center

To enable customer center

  • Navigate to Setup > Company > Enable Features

  • Choose Web Presence sub tab

  • Select the Customer Access checkbox

  • Click on the save button

    customeraccess

Provide customer center access to individual customers

To provide customer center access to individual customers follow the below steps.

  • Navigate to Lists > Relationships > Customers

  • Click Edit link next to the customer that you want to assign a role to

  • Click the Access tab

  • Select the Give Access checkbox

  • Click on the save button

    giveaccess

FAQ

Where can I find the log files?

In the case where you experience an issue with the AltaPay bundle we would like you to provide us with the steps leading to the issue and a log file. You can access the log file by following three simple steps.

  1. Go to: Customization > Plug-ins > Plug-in implementations

    log_files

  2. Click ‘Edit’ or ’View ’ beside ‘AltaPay’

  3. Click on the tab ‘Execution Log’

How can I retrieve logs for AltaPay troubleshooting?

  1. First, add filtering criteria to the logs view by clicking “Customize View”

    customize_vew

  2. In the new window navigate to the “Criteria” tab

    criteria

  3. Set the days from when to extract needed logs. There is already included filter for the date filter with default value set to “today”. To change this, click on the “Set Description” button next to the “Date” filter

    date_filter

  4. A new window is displayed where date filters can be set. Date filters can be set with relative settings based on today’s date or absolute.

    date_filter_set

Example

To retrieve all the logs from yesterday and today’s date perform following steps:

  • In the “Date” select list set value “within”
  • In the “From” field select yesterday’s date custom_date
  • In the “To” field select today’s date
  1. Click "Set" to apply the changes.

  2. Now set the filter for the script. In that way, only logs related to “AltaPay” bundle will be shown. To do that select “Script” value from the list.

    script

  3. A new window will appear where actual value for the script should be configured. In the text area, key in AltaPay.

    value_for_script

  4. Now click "Preview" to preview the extract.

    preview

  5. All logs which meet given criteria will be shown on the results page. To export logs, select “Export -PDF” or “Export - Microsoft Excel”

    export

How can I remove the gateway field in the payment processing profile?

If there is a gateway field in the payment processing profile, this can be ignored. However, you can remove the field:

  • Go to Customization > Lists, Records & Fields > Record types
  • Then click on ‘Altapay_Configuration’ and then ‘Gateway’
  • Check the check box ‘INACTIVE’ and click ‘Save’.

How does fraud detection work?

If fraud detection is enabled on the terminal, the AltaPay NetSuite app will follow the fraud detection recommendations. The following four recommendations are available:

  • ‘Deny’

The transaction is denied and the order is cancelled as well. You can see the reason here:

  1. Find the order in question
  2. Go to the ‘Payment’ tab
  3. ‘Payment events’ > click ‘View’ and a new window appear
  4. ‘Payment Status’ > ‘DETAILS’ > here you can see the message for why the order was denied.

If you utilize a bespoke version of ReD, the reason for the deny recommendation can be located in the ReD CSI interface.

Good practice will be to release the payment in our backend. Debit cards do not contain reservations.

  • ‘Challenge’. The transaction is on hold and the merchant will need to decide whether they want to handle the order. If nothing is done the order will be hold in NetSuite. You can see the reason here:
  1. Find the order in question
  2. Go to the ‘Payment’ tab
  3. ‘Payment events’ > click ‘View’ and a new window appear
  4. ‘Payment Status’ > ‘DETAILS’ > here you can see the message for why the order is on hold.

If you utilize a bespoke version of ReD, the reason for the deny recommendation can be located in the ReD CSI interface.

If the merchant doesn’t want to fulfill the order, they have to cancel it. It will be good practice to release the orders in our backend, so there are no reservations on debit cards. If the merchant will handle this order, they will have to ‘Override the payment hold’ and fulfill the order.

The merchant can find the ‘Challenge’ orders here:

  1. Go to Transactions > Sales > Manage Payment Hold
  2. Dropdown menu ’HOLD REASON’ > select ‘External Fraud Review’ > a list of orders on hold is shown and from here you can accept or decline the order.
  • ‘Accept’ . This order will be accepted without any notice.
  • ‘Unknown’. This can be due to technical problems at either AltaPay or the fraud company. The order will be handled as accepted

How do I access log files for the reconciliation process?

Go to: Customization > Scripting > Scripts There is are several scripts within NetSuite, so not all of these are related to the reconciliation process. Go to the script, that has the name “Recon.js” and click either view or edit. Then there is a tab called “Execution log” and here you can find the log entries related to the funding’s files and funding files alone.

These log entries are needed when you have any problems with the reconciliation and need to contact AltaPay support.

Payment method is not visible in NetSuite Website

Check that Payment Visuals is set in the Payment Method, as explained in Adding a payment method.