QuickWeb Recurring Technical Implementation Guide
QuickWeb Recurring
QuickWeb Recurring is a set of Westpac hosted payment pages that allow your customers to set up and manage recurring payments online.
Demo Creation Flow Demo Management Flow
This page describes QuickWeb Recurring. Other types of QuickWeb are:
- QuickWeb Standard - Customisable hosted payment pages for payments by credit card and bank account.
- QuickWeb Invoicing - Your customers view and pay for invoices and bills.
What is QuickWeb?
QuickWeb is a set of Westpac hosted payment pages. Your website directs your customer to pay using QuickWeb by credit card or bank account.
See QuickWeb Technical Implementation Guide for more.
What is recurring?
QuickStream has four interfaces to standard recurring payment functions:
- File interface - Recurring Batch
- Client (you) facing web interface - QuickStream Portal
- Customer (your customer) facing web interface - QuickWeb Recurring
- Administration interface - QuickStream Portal
The recurring payment functions in QuickStream are collectively known as Recurring.
A recurring payment is a payment made in regular instalments according to a predefined schedule. You can define the regular instalment amount and define a schedule. A schedule has:
- a type, which defines when to conclude the schedule, and
- a frequency which defines how often the regular instalment is taken from your customer.
What is QuickWeb Recurring?
Using QuickWeb Recurring, your customers can set up and manage recurring payments online. The extra benefits are that your customers can:
- Create a recurring payment schedule.
- Modify recurring payment schedule type, frequency and amount.
- Stop an active recurring payment.
- Re-start a stopped recurring payment.
- Change the payment account details or use a new credit card or bank account.
The product has two flows:
Implementing QuickWeb Recurring
To implement QuickWeb Recurring:
- Define the customisation options and provide those to your Westpac contact.
- Build the ability to consume the Cash Applied File in your systems.
- Define a group email address to send notifications about file processing.
- Define if you will offer only the Creation flow, Management flow or both.
- Build the ability to hand your customer over to QuickWeb Recurring.
- Optionally build the ability to receive your customer back from QuickWeb Recurring.
- Optionally build the ability to consume a server to server response from QuickWeb Recurring.
- Perform testing in our Test environment.
- Provide sign-off on your testing.
- Transition into your Production environment.
- Perform live testing in our Production environment.
- Roll out QuickWeb Recurring into your business processes.
Recurring concepts
See Recurring payment schedules for more information about the concepts of recurring payment schedules.
Creation flow
The creation flow below describes the complete set of payment creation functionality available to QuickWeb Recurring. The creation flow has 7 steps.
- Handoff
- Enter Customer Details
- Enter Schedule Details
- Enter Banking Details
- Confirm Payment
- Receipt
- Passback
The steps are described below and refer to the payment flow diagram.
Hand off
The payer is handed-off from your website to QuickWeb Recurring in this step. See Handoff your customer to QuickWeb.
Related sections:
- Pre-fill the 'enter customer details' step.
- Pre-fill the 'enter schedule details' step.
- Provide the regular payment amount.
- Managing your security settings.
- Parameters for the Secure token request.
- Parameters for the Form inputs handoff.
Enter customer details
The payer enters their details. You may choose to collect additional address details. Collecting an email address and/or a mobile phone number allows notifications to be sent to payers for payment events. A customer may have one or more recurring payments.
Related sections:
- Pre-fill the 'enter customer details' step.
- Send notifications on management and payment events.
- Management flow.
- Change the look and feel of the pages.
- Pre-fill the Enter customer details step
- Send notifications on management and payment events.
Enter schedule details
The payer chooses their payment schedule details. See Payment schedule types.
Things to note:
- When the first payment date is today, the payment will be made after the Confirm payment step.
- Choosing Stop after a set number of payments displays a field to enter the number of payments.
- Choosing Stop after a total amount displays a field to enter the total amount of payments.
- Choosing Continue until date displays a field to enter the schedule end date.
Related sections:
- Payment schedule types.
- Change the look and feel of the pages.
- Pre-fill the Enter schedule details step.
- Provide the regular payment amount.
- Management flow.
- Restrict the schedule types and frequencies a payer can choose.
- Send notifications on management and payment events.
Enter banking details
The payer will enter their credit card or bank account details. When a surcharge is applicable, the surcharge rates are displayed.
Related sections:
- Change the look and feel of the pages.
- Register the payment account in QuickVault
- Restrict a payer to only credit card payments or bank account payments
- Management flow.
- Send notifications on management and payment events.
Confirm payment
The payer will confirm their payment details. When a surcharge is applicable, the new amount is displayed and the payer must tick a checkbox to continue.
If the payment is identified as a duplicate, the payer must tick a checkbox to continue.
The payer must complete a CAPTCHA challenge before the payment is made.
Related sections:
- Change the look and feel of the pages.
- Duplicate payment checking
- QuickWeb redirects to your receipt page
Receipt
The details of the new schedule created for the customer is displayed. If the first payment date was today, a payment will be attempted. The payer will view the details of the successful or declined payment. The payer can enter an email address to send a receipt via email.
Related sections:
- Change the look and feel of the pages.
- Change the look and feel of the payment receipt.
- Register the payment account in QuickVault.
- Management flow.
- QuickWeb redirects to your receipt page.
- QuickWeb receipt page links to your website.
Passback
Your customer is passed back from QuickWeb Recurring to your website in this step. See Handoff your customer back to your website.
Related sections:
Management flow
The management flow below describes the complete set of management functionality available to QuickWeb Recurring. The management flow has 7 steps.
The steps are described below and refer to the payment flow diagram.
Hand off
The payer is handed-off from your website to QuickWeb Recurring in this step. See Handoff your customer to QuickWeb.
Set the allowRecurringManagement parameter to true in the Secure token handoff to access the management flow.
Related sections:
- Bypass the account verification step.
- Managing your security settings.
- Parameters for the Secure token request.
Verify account
The payer must be verified before they can manage recurring payments. There are two pieces of information that must be provided:
- Customer reference number - your unique identifier for a customer. This is provided for new customers via the creation flow, or via Recurring Batch.
- Existing schedule identifier - a unique identifier for a customer's recurring payment schedule. This is provided for customers via the creation flow, or via Recurring Batch.
The payer enters both pieces of information correctly and proceeds to the View Recurring Payments step.
Related sections:
- Verify account step failures.
- Change the look and feel of the pages.
- Bypass the Account Verification step.
- Change the Existing schedule identifier in the account verification to a custom lookup.
- See Recurring Batch for more on uploading customer and schedule information.
View recurring payments
QuickWeb displays the customer number, name and a list of recurring payments. For each recurring payment, QuickWeb displays the following:
- Schedule identifier. This is a unique identifier generated by QuickWeb, or provided by you via Recurring Batch.
- Description. An automatically generated description of the recurring payment. The description changes based on the amount, account and Payment schedule type.
- Status. Either
Active,StoppedorComplete. AnActiverecurring payment will take payments on schedule.Stoppedrecurring payments are stopped indefinitely, and do not take recurring payments. ACompleterecurring payment has finished the payment schedule and cannot be re-started. - Payment Account. The masked credit card or bank account details.
Select Manage to manage the recurring payment. Select View to show details of a completed recurring payment. Select Finish to start the passback.
Related sections:
- Change the look and feel of the pages.
- Restrict the management options a payer can access.
- Send notifications on management and payment events.
- Session timeouts.
Manage recurring payment
QuickWeb displays details of the selected recurring payment. The payer can choose to:
- Change banking details.
- Stop/Start payments.
- Change the schedule details.
- Go back to view recurring payments.
Related sections:
- Change the look and feel of the pages.
- Restrict the management options a payer can access.
- Send notifications on management and payment events.
Change banking details
A payer can change to a new credit card or bank account. To change an expiry date or account name, a payer will add a new account. A payer can choose existing accounts. QuickWeb displays QuickVault accounts if QuickVault is enabled for your facility.
Related sections:
- Change the look and feel of the pages.
- Restrict a payer to only credit card payments or bank account payments.
- Send notifications on management and payment events.
Stop/Start payments
A payer can stop an Active recurring payment. Stopping a recurring payment takes effect immediately. A payer can also restart a Stopped recurring payment. The restarted recurring payment will start again on the next calendar day.
Related sections:
- Change the look and feel of the pages.
- Send notifications on management and payment events.
- Recurring concepts.
Change schedule details
A payer can change details of a recurring payment. See Payment Schedule Types for more.
Related sections:
Customising QuickWeb Recurring
When a test QuickWeb Recurring facility is provided to you, it will have the maximum amount of features the product offers. You can then choose to change or remove some features. This is done during your Westpac implementation project. Customisation options include:
- Change the look and feel of the pages.
- Change the look and feel of the payment receipt.
- Bypass the account verification step.
- Pre-fill the 'enter customer details' step.
- Pre-fill the 'enter schedule details' step.
- Provide the regular payment amount.
- Change the 'existing schedule identifier' in the account verification to a custom lookup (charges may apply).
- Register the payment account in QuickVault.
- Restrict a payer to only credit card payments or bank account payments.
- Restrict the schedule types and frequencies a payer can choose.
- Restrict the management options a payer can access.
- Send notifications on management and payment events.
Each of these items is explained in the sections below.
Change the look and feel of the pages
The QuickWeb Recurring pages have a default Westpac brand. You may change this to look like your customer-facing website. To accomplish this, provide one or more of the following to your Westpac contact:
- A URL to the brand website.
- Provide style guide and brand documentation.
- Change the look and feel of the QuickWeb Click-through.
Applies to the creation flow and management flow.
Download QuickWeb click-through
Download the QuickWeb click-through, brand the web pages and provide them back to your Westpac contact.
Change the look and feel of the payment receipt
The payment receipt has a default Westpac brand. It includes recurring payment and immediate payment information. You may change this to look like existing payment receipts, and show less information.
Applies to the creation flow only.
Bypass the account verification step
You can partially or fully bypass the account verification step as follows:
- Provide
customerReferenceNumberin a Secure Token Request to remove the Customer Reference Number field from the Account Verification step. - Provide
secondaryIdentifierin a Secure Token Request to remove the Existing Schedule Identifier field from the Account Verification step. - Provide both
customerReferenceNumberandsecondaryIdentifierin a Secure Token Request to skip the page entirely.
The payer will be taken to the View Recurring Payments step. Refer to Parameters for the Secure Token Request.
Applies to the management flow only.
Pre-fill the enter customer details step
To pre-fill the mandatory customer details, provide the following parameters in a Secure Token Request:
customerReferenceNumberreceiptEmailAddressphoneNumber
See Parameters for secure token request.
To skip this step when the mandatory fields are provided in a Secure Token Request, raise this with your Westpac contact.
Applies to the creation flow only.
Pre-fill the enter schedule details step
To pre-fill the mandatory schedule details, provide the following parameters in a Secure Token Request:
recurringScheduleCoderecurringScheduleFirstDaterecurringScheduleFrequencyrecurringSchedule
See Parameters for secure token request.
To skip this step when the mandatory fields are provided in a Secure Token Request, raise this with your Westpac contact.
Applies to the creation flow only.
Provide the regular payment amount
To provide the regular payment amount, provide the principalAmount parameter in a Secure Token Request. The payer will not enter this amount. Surcharges are calculated on top of this amount.
See Parameters for secure token request.
Applies to the creation flow only.
Change the existing schedule identifier in the account verification to a custom lookup
The account verification step requires two pieces of information to verify a payer:
- A customer reference number
- A secondary reference number
The customer reference number uniquely identifies your customer. It is provided via new schedules during the creation flow or Recurring Batch. Recurring payments are allocated to a customer.
The secondary reference number defaults to an Existing Schedule Code. You may wish to change this to another piece of information. You must provide this value for your customer in the Customer upload request file or during the creation flow. Discuss this option with your Westpac contact. Charges may apply.
Applies to the management flow only.
Register the payment account in QuickVault
QuickWeb Recurring registers any account used for a new recurring schedule in QuickVault when it is enabled for your facility. The preregistrationCode is provided in the passback and Customer snapshot file. It may also be reported in the daily registered accounts report.
See QuickVault Summary and related docs for more on QuickVault.
Applies to the creation flow and management flow.
Restrict a payer to only credit card payments or bank account payments
You can instruct QuickWeb Recurring to restrict a payer to only credit card payments or bank account payments. To do this, provide the accountType parameter in a Secure Token Request.
Applies to the creation flow and management flow.
Restrict the schedule types and frequencies a payer can choose
You can instruct QuickWeb Recurring to restrict a payer to a particular frequency for new recurring payments. To do this, provide the recurringScheduleFrequency parameter in a Secure Token Request during the creation flow.
To restrict the list available to a subset of the available frequencies, raise this with your Westpac contact.
Applies to the creation flow and management flow.
Restrict the management options a payer can access
To restrict the available options a payer can access in the management flow, define this with your Westpac contact.
Applies to the management flow only.
Send notifications on management and payment events
QuickStream can send notifications about payment events to your customers on your behalf. These notifications can be sent as an email or an SMS message.
Applies to the creation flow and management flow.
Duplicate payment checking
QuickWeb performs duplicate transaction checks in order to reduce the instances of accidental double payment.
What is a duplicate?
A transaction is considered a duplicate if there is a previous transaction that matches all these criteria:
- has the same credit card number (but not necessarily expiry date) or bank account BSB and account number
- is for the same merchant
- is for the same amount
- is approved or currently processing
- is not a QuickBatch transaction (but could be QuickVoice, QuickConnect, etc)
- is for the current settlement date
What is displayed to the cardholder?
The card holder is warned of the duplicate and must tick a box in order to continue processing.
Can I disable the duplicate check?
Not directly. The duplicate check may be removed if required. Charges may apply.
Verify account step failures
The account verification step requires two pieces of information to verify a payer:
- A customer reference number
- A secondary reference number
If the payer enters either piece of information incorrectly they will see an error.
If the payer enters either piece of information incorrectly 20 times, their IP address will be blacklisted by the system.
When an IP address is blacklisted, the IP address is blocked from all Qvalent services.
To have an IP address removed, a contact from your company must report this to the QuickStream Technical Support team. A member of the QuickStream Technical Support team must be able to identify you as a user of QuickStream Portal or an approved contact with the team. To update your approved contacts that are not also users in QuickStream Portal, contact the QuickStream Technical Support team when your solution goes live.
Session timeouts
QuickWeb's session lasts for 15 minutes. After 10 minutes of inactivity, QuickWeb displays a pop-up. The pop-up warns the user that their session is about to expire.
This can occur on any page in both the creation flow and the management flow.
When a user selects:
- End Session, QuickWeb initiates the passback to cancelUrl.
- Continue, QuickWeb extends the users' session for another 15 minutes.
The pop-up displays for 5 minutes of inactivity. If after 15 minutes of inactivity, the user takes an action such as clicking the buttons in the popup or refreshing the page, QuickWeb redirect the user to the Session Timeout page.
This page can be branded if required.
Handoff your customer to QuickWeb
To handoff your customer from your website to QuickWeb, choose one of the following options:
Both options require you to send parameters to QuickWeb that identify you to QuickWeb and serve up your payment pages.
Secure token handoff
The secure token request is Westpac's recommended method for sending parameters. It allows the parameters to be sent directly from your server to QuickWeb. This prevents the customer from being able to tamper with the parameters before they are sent to QuickWeb.
In order to perform a secure token request you will require:
- a dynamic backend which can send a
HTTPS POSTdirectly to the QuickWeb server. - the ability to make an outbound
HTTPSconnection to QuickWeb through your proxy and firewall. - your allowed IP addresses whitelisted in QuickStream Portal.
- your credentials from QuickStream Portal.
The secure token handoff has two steps:
- Secure token request. Your server requests a Security Token from QuickWeb.
- Handoff. Your website uses the Secure Token to hand off your customer to QuickWeb.
Example secure token request
POST /CommunityTokenRequestServlet HTTP/1.1
Host: ws.qvalent.com
Accept: text/plain
Content-Type: application/x-www-form-urlencoded
cancelUrl=https%3A%2F%2Fyoursite.com.au%2Fcancelled
&connectionType=QUICKWEB
¤cyCode=AUD
&errorEmailToAddress=errors%40yoursite.com.au
&password=<YOUR_FACILITY_PASSWORD>
&product=RECURRING
&returnUrl=https%3A%2F%2Fyoursite.com.au%2Fthankyou
&serverReturnUrl=https%3A%2F%2Fyoursite.com.au%2FreceiveRequest
&supplierBusinessCode=<YOUR_SUPPLIER_BUSINESS_CODE>
&username=<YOUR_FACILITY_USERNAME>
Example response
token=OicksakIMkD3OiZpyE7MadwJkZSrSqgjviXCEomVD3ZzEmZ6Vlxecg
Example handoff
<form action="https://quickweb.westpac.com.au/OnlinePaymentServlet3" method="POST">
<input type="hidden" name="token" value="OicksakIMkD3OiZpyE7MadwJkZSrSqgjviXCEomVD3ZzEmZ6Vlxecg"/>
<input type="hidden" name="communityCode" value="<YOUR_COMMUNITY_CODE>"/>
<input type="submit" value="Make Payment"/>
</form>
QuickWeb validates the IP address of a secure token request. White list your allowed IP addresses in QuickStream Portal.
Along with the security benefits, using the secure token handoff you can:
- Access the management flow.
- Pre-fill the Enter customer details step.
- Pre-fill the Enter schedule details step.
- Provide the regular payment amount.
- Bypass the account verification step.
- Change the Existing schedule identifier in the account verification to a custom lookup.
- Register the payment account in QuickVault.
- Restrict a payer to only credit card payments or bank account payments.
- Provide additional custom parameters for reporting.
- Receive a server to server payment notification.
Parameters for secure token request
Sign in to QuickStream Portal to get these values in each environment. See View your connection details.
| Parameter Name | Required | Description |
|---|---|---|
username |
Yes | Your username. |
password |
Yes | Your password. |
supplierBusinessCode |
Yes | Your supplier business code indicates the merchant you wish to settle funds to. |
connectionType |
Yes | QUICKWEB |
product |
Yes | RECURRING |
accountType |
No | Restrict a payer to credit card or bank account payments only. Choose CREDIT_CARD, DIRECT_DEBIT. |
principalAmount |
No | The regular payment amount. Credit card surcharges are applied on top of this amount. Send blank to allow the payer to enter the amount. |
customerReferenceNumber |
No | Provide a customer reference number to bypass the account verification step or Pre-fill the Enter customer details step. |
receiptEmailAddress |
No | Provide a receipt email address to Pre-fill the Enter customer details step and set the email address for the payment receipt or email notifications. |
phoneNumber |
No | Provide a phone number to Pre-fill the Enter customer details step and set the mobile phone number for SMS notifications. |
secondaryIdentifier |
No | Provide a secondary identifier to bypass the account verification step. |
recurringScheduleCode |
No | Provide a unique recurring schedule code to set the recurring payment identifier in the creation flow. When not provided, QuickWeb will generate one for you. |
recurringScheduleFirstDate |
No | Provide the schedule start date in dd MMM yyyy format to Pre-fill the Enter schedule details step. For example, 01 Jan 2017. |
recurringScheduleFrequency |
No | Provide the frequency to Pre-fill the Enter schedule details step and restrict the schedule frequency a payer can choose. One of:
|
recurringSchedule |
No | Provide a the schedule type to Pre-fill the Enter schedule details step and restrict the schedule frequency a payer can choose. One of:
|
allowRecurringManagement |
No | Set to true to allow access to the management flow. |
allowRecurringCreation |
No | Set to false to disable access to the creation flow. Access can only be disabled when allowRecurringManagement is true. |
returnUrl |
No | Provide the HTTPS URL to redirect the customer from the receipt page or to by-pass the receipt page and host your own. |
cancelUrl |
No | Provide the HTTPS URL to redirect to when the payer cancels the payment process. |
errorEmailToAddress |
No | Receive an email when the server to server notifications fails. Override the value set in your QuickStream Portal security settings. |
serverReturnUrl |
No | Send the server to server notifications to this HTTPS URL. Override the value set in your QuickStream Portal security settings. |
custom<ParameterName> For example, customTitle or customPayeeName |
No | QuickWeb can display this data on the screen and/or pass it back to you in the payment notification. The parameter name must start with "custom" followed by an uppercase letter. Maximum 100 characters per parameter. |
Parameters for handoff
| Parameter Name | Description |
|---|---|
communityCode |
Your community code. See View your connection details. |
token |
The token received as a response to the secure token request. |
Form inputs handoff
The form inputs handoff is the second option for sending parameters to QuickWeb. It involves all the parameters being sent directly from the customer's browser to QuickWeb. It is an easier method to implement, however, it does allow the customer to tamper with the parameters before they are sent to QuickWeb. Westpac, therefore, recommends using the secure token handoff method instead.
Form handoff example
<form action="https://quickweb.westpac.com.au/OnlinePaymentServlet3" method="POST">
<input type="hidden" name="product" value="RECURRING"/>
<input type="hidden" name="communityCode" value="<YOUR_COMMUNITY_CODE>"/>
<input type="hidden" name="supplierBusinessCode" value="<YOUR_SUPPLIER_BUSINESS_CODE>"/>
<input type="hidden" name="currencyCode" value="AUD"/>
<input type="hidden" name="returnUrl" value="https://yoursite.com.au/thankyou"/>
<input type="hidden" name="cancelUrl" value="https://yoursite.com.au/cancelled"/>
<input type="submit" value="Make Payment"/>
</form>
When using a form inputs handoff your customer must proceed through the account verification step.
Parameters for form inputs handoff
Sign in to QuickStream Portal to get these values in each environment. See View your connection details.
| Parameter Name | Required | Description |
|---|---|---|
communityCode |
Your community code. See View your connection details. | |
supplierBusinessCode |
Yes | Your supplier business code indicates the merchant you wish to settle funds to. |
product |
Yes | RECURRING |
currencyCode |
Yes | AUD or NZD |
returnUrl |
No | Provide the URL to redirect the customer from the receipt page or to by-pass the receipt page and host your own. |
cancelUrl |
No | Provide the URL to redirect to when the payer cancels the payment process. |
Handoff your customer back to your website
This processing is referred to as the passback. The passback involves redirecting your customer to the URL you have specified in the returnUrl or cancelUrl parameters. This redirect has parameters that you can use to display information back to your customer on your website. The redirect is a HTTP GET by default. Raise with your Westpac contact if this should be a HTTP POST to your website.
Before implementing the pass back you must decide when you would like the customer to return to your website after a payment attempt:
- QuickWeb receipt page links to your website specified in
returnUrl. - QuickWeb redirects to your website for you to show the receipt page specified in
returnUrl.
These options are discussed in the sections below.
QuickWeb receipt page links to your website
In this option QuickWeb will display its own receipt page to the customer. The receipt page includes a button that links back to your website. The passback occurs when the customer clicks the button.
QuickWeb redirects to your receipt page
In this option QuickWeb will return the customer to your website immediately after the payment is made. That is, your customer will see the Confirm Payment page and when QuickWeb processes the payment, it will redirect the customer to returnUrl. The QuickWeb receipt page is not displayed.
Your website will then show a receipt page to the customer. QuickWeb will include a number of parameters in the redirect. They will be included as a list of ampersand delimited parameters.
The parameters that QuickWeb will return are listed in Parameters returned in passback.
Payer cancels the payment process
When a payer cancels out of the payment process (usually via a Cancel button), QuickWeb will redirect back to your website. Provide the URL in the cancelUrl parameter.
The redirect will include parameters. The receipt number will not be included as no payment was attempted. See Parameters returned in passback.
Parameters returned in passback
Most of the parameters below are returned in the passback from the creation flow. The passback from the management flow includes only a subset of the passback parameters:
communityCodesupplierBusinessCodecustomerReferenceNumberhmac
| Parameter Name | Description |
|---|---|
settlementDate |
The settlement date in yyyyMMdd format. For example, 20170110. See Transaction Settlement. |
receiptNumber |
The receipt number. Provided only when an immediate payment is made. |
supplierBusinessCode |
The supplier business used for the payment. |
communityCode |
Your facility's community code. |
paymentAmount |
The total payment amount including surcharges. Provided only when an immediate payment is made. |
surchargeAmount |
The surcharge amount if applicable. Provided only when an immediate payment is made. |
responseCode |
The response code. See Response Codes. Provided only when an immediate payment is made. |
responseDescription |
The description of the response code. See Response Codes. Provided only when an immediate payment is made. |
summaryCode |
The summary code. See Response Codes. Provided only when an immediate payment is made. |
cardScheme |
The type of credit card the customer used to make the payment. QuickStream will return one of the following values:VISAMASTERCARDAMEXDINERSJBCUNIONPAY. Provided only when an immediate payment is made. |
customerReferenceNumber |
The customer number. |
createdDateTime |
The date and time the created. |
cardholderName |
The cardholder name. |
maskedCardNumber |
The masked credit card number that the customer entered. For example, 45647xxxxxxx004 |
accountName |
The bank account name. |
bsb |
The BSB number for bank account payments. For example, xxx-002. |
accountNumber |
The bank account number for bank account payments. For example, xxxxxx465. |
recurringScheduleCode |
The unique recurring payment schedule identifier. This value is provided in the Secure token handoff or generated by QuickWeb. |
recurringScheduleFirstDate |
The first date of the recurring payment schedule in yyyyMMdd format. For example, 20170110. |
recurringScheduleFrequency |
The frequency. One of:
|
recurringSchedule |
The recurring payment schedule type. One of:
|
recurringScheduleTotalAmount |
The total amount of the schedule. |
recurringScheduleNumberOfPayments |
The number of payments remaining in the schedule. |
recurringScheduleContinueUntilDate |
The last payment date of the schedule. Provided for CONTINUE_UNTIL_DATE schedule types only. |
preregistrationCode |
The QuickVault account token for the registered payment amount. |
hmac |
A HMAC_SHA256 signed string of the parameters in the passback. Use this to validate that the parameters in the passback were not tampered. See Validating the HMAC. |
| Custom fields | Any custom parameters prefixed with custom that you included in the handoff will be sent back to you. For example: customTitle, customPayeeName. |
For example
GET /thankyou?
communityCode=<YOUR_COMMUNITY_CODE>&
supplierBusinessCode=<YOUR_SUPPLIER_CODE>&
surchargeAmount=0.64&
paymentAmount=32.72&
customerReferenceNumber=123456789&
receiptNumber=1199701986&
responseCode=QS&
responseDescription=Approved+or+completed+successfully&
summaryCode=0&
createdDateTime=23+Jan+2017+13%3A00%3A09&
settlementDate=20170123&
recurringScheduleCode=37659575&
recurringScheduleFirstDate=20170123&
recurringScheduleFrequency=MONTHLY&
recurringSchedule=STOP_AFTER_SET_NUMBER_OF_PAYMENTS&
recurringScheduleTotalAmount=320.80&
recurringScheduleNumberOfPayments=10&
cardholderName=John+Smith&
maskedCardNumber=424242...242&
cardScheme=VISA&
expiryDateMonth=04&
expiryDateYear=2020&
preregistrationCode=YOURCOMPANY77331557&
hmac=ed61ae6d3f8fecc848b5b666a90a059ec7508248761d5b0b63295881d701782f HTTP/1.1
Host: yoursite.com.au
GET to a POST speak to your Westpac contact.
Validating the HMAC
The HMAC is included in the parameters returned in the passback. Use this to validate the parameters in the passback were not tampered.
The parameters in the passback are signed using the HMAC_SHA256 algorithm. Your secure token request password is used as the secret in the HMAC_SHA256 calculation. Find the password by viewing your connection details in QuickStream Portal.
To validate the hmac parameter:
- Remove
hmacfrom the list of parameters returned and order the parameters ASCIIbetically by name. - URL encode each parameter with UTF-8 character encoding.
- Join the parameter names and values with = and each pair with & (as per a query string).
- Generate the HMAC from this string using secure token request password.
- Hexadecimal encode the resulting string.
- Compare the HMAC string you generated to the
hmacparameter in the passback.
HMAC validation example
This example illustrates a simple validation of the hmac parameter in the passback.
Step 1: Get the list of parameters returned in the passback.
| Parameter Name | Parameter Value |
|---|---|
communityCode |
COMCODE |
supplierBusinessCode |
SUPP |
principalAmount |
10.00 |
customParam |
this is a custom param with special characters & |
hmac |
dce3bc3945ca4d33151fb4c6a69971d86c35556cc2becafb3cb451f080af3d49 |
Step 2: Remove hmac and order the parameters ASCIIbetically by name.
| Parameter Name | Parameter Value |
|---|---|
communityCode |
COMCODE |
customParam |
this is a custom param with special characters & |
principalAmount |
10.00 |
supplierBusinessCode |
SUPP |
Step 3: URL encode each parameter with UTF-8 character encoding
Ensure the encoded characters are lowercase and not uppercase (for example, %3A not %3a.)
| Parameter Name | Parameter Value |
|---|---|
communityCode |
COMCODE |
customParam |
this+is+a+custom+param+with+special+characters+%26 |
principalAmount |
10.00 |
supplierBusinessCode |
SUPP |
Step 4: Join the parameter names and values with = and each pair with &.
communityCode=COMCODE&customParam=this+is+a+custom+param+with+special+characters+%26&principalAmount=10.00&supplierBusinessCode=SUPP
Step 5: Generate the HMAC from this string using secure token password.
public static String hash( final String password, final String queryString )
{
final Mac mac = Mac.getInstance( "HmacSHA256" );
mac.init( new SecretKeySpec( password.getBytes( "UTF-8" ), "HmacSHA256" ) );
return Hex.encodeHexString( mac.doFinal( queryString.getBytes() ) );
}
Finally, compare the HMAC string you generated to the hmac parameter in the passback. If the strings do not match, there has likely been tampering of the parameters and their values and should not be considered accurate.
Receiving payment details
QuickWeb provides two ways to receive payment details:
Server to server notification
This option is also known as the server-to-server postback. It allows you to receive payment summary details after each credit card payment is made and recurring payment schedule is created via the creation flow. This is done via a HTTPS POST from QuickWeb to your server. QuickWeb can post the payment details as form parameters or as XML.
QuickWeb sends separate server to server notifications for successful payments and recurring payment creation.
A server to server notification is not sent for the management flow. You can receive a Customer snapshot file daily to update the state of recurring payments in your system.
To receive a server to server notification
- Your website must provide the
serverReturnUrlparameter in a secure token handoff, or configure your sever to server notifications in QuickStream Portal. - Configure the domain white list in QuickStream Portal.
- Have a valid SSL certificate issued by a trusted certificate authority. Sending the notification over SSL ensures that the encrypted notification cannot be read by a malicious third-party. As your SSL certificate was issued by a trusted certificate authority, it also guarantees that QuickWeb is connecting to your webserver (and not another fraudulent server as in the case of DNS attacks).
- Have a dynamic backend which can receive and parse
HTTPSrequests with parameters or can parse XML.
A server to server notification is sent after a successful credit card payment attempt or recurring payment schedule is created via the creation flow.
When you receive a server to server notification, your system must:
- Check that the IP address matches the expected QuickStream IP address.
- If they do not match you will return a status of
403 Forbidden. - See IP addresses in Test and in Production.
- If they do not match you will return a status of
- Check that the Basic Auth username and password in the
Authorizationheader match your credentials in QuickStream.- If they do not match you will return a status of
403 Forbidden.
- If they do not match you will return a status of
- Extract the payment summary details.
- The way you do this will depend on the way QuickWeb has posted the payment details. You will either extract the details from the form parameters or extract the details from the XML.
- Check to make sure you have not already processed a notification for this payment.
- To do this you will compare the
receiptNumberto the receipt numbers you have already processed.
- To do this you will compare the
- Save the payment details to your database.
- Your server returns a status of
200 OK.- Note, if an error occurred and you were unable to save the payment details, your server will instead return a status of
500 Internal Server Error.
- Note, if an error occurred and you were unable to save the payment details, your server will instead return a status of
Example server to server notification consumption in Java
public class NotificationConsumer extends HttpServlet
{
...
@Override
protected void doPost( final HttpServletRequest request,
final HttpServletResponse response ) throws IOException
{
try
{
if( !request.getRemoteAddr().equals( QUICKSTREAM_IP_ADDRESS ) ) {
response.sendError( HttpServletResponse.SC_FORBIDDEN );
return;
}
final String authorization = request.getHeader( "Authorization" );
if( authorization == null )
{
response.sendError( HttpServletResponse.SC_UNAUTHORIZED );
return;
}
String base64Credentials = authorization.substring( "Basic".length() ).trim();
String credentials = new String( Base64.getDecoder().decode( base64Credentials ), Charset.forName( "UTF-8" ) );
final String[] values = credentials.split(":",2);
if( !QUICKSTREAM_USERNAME.equals( values[0] ) || !QUICKSTREAM_PASSWORD.equals( values[1] ) ) {
response.sendError( HttpServletResponse.SC_FORBIDDEN );
return;
}
response.setStatus( HttpServletResponse.SC_OK );
for( final String name : request.getParameterMap().keySet() ) {
for( final String value : request.getParameterMap().get( name ) ) {
// Consume
}
}
}
catch( final Exception e ) {
response.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
}
return;
}
}
Example server to server notification consumption in PHP
<?php
header( "Content-Type: text/plain" );
if ( $_SERVER["REMOTE_ADDR"] != QUICKSTREAM_IP_ADDRESS ) {
header("HTTP/1.1 403 FORBIDDEN");
return;
}
if ( !isset($_SERVER['PHP_AUTH_USER'] ) || !isset( $_SERVER['PHP_AUTH_PW'] ) ) {
header("HTTP/1.1 401 UNAUTHORIZED");
return;
}
if ( $_SERVER['PHP_AUTH_USER'] != QUICKSTREAM_USERNAME || $_SERVER['PHP_AUTH_PW'] != QUICKSTREAM_PASSWORD ){
header("HTTP/1.1 403 FORBIDDEN");
return;
}
if( $_SERVER["REQUEST_METHOD"] === "POST" ) {
try {
foreach( $_POST as $key => $value ) {
// consume
}
header("HTTP/1.1 200 OK");
} catch (Exception $e) {
header("HTTP/1.1 500 INTERNAL SERVER ERROR");
}
}
return;
?>
Parameters in the server to server notification
These parameters are present in the server to server notification:
| Parameter Name | Description |
|---|---|
sourceCode |
The payment channel used to make the transaction. The values are net, adhoc and phone. |
receiptNumber |
The unique receipt number generated by QuickWeb. This value can be used later to locate this payment in QuickStream Portal. |
communityCode |
Your community code. Provided in communityCode during the handoff. See View your connection details in QuickStream Portal. |
supplierBusinessCode |
Your supplier business code. Provided in supplierBusinessCode during handoff. See View your connection details in QuickStream Portal. |
paymentReference |
Provided in paymentReference during the handoff or entered by the payer. |
customerReferenceNumber |
A customer-level reference. Provided in supplierBusinessCode during the handoff or entered by the payer. |
paymentAmount |
The payment amount including surcharges. |
surchargeAmount |
The surcharge amount. |
cardScheme |
The card scheme. One of:
|
settlementDate |
The settlement date of the payment. See Transaction settlement. |
createdDateTime |
The date and time of the transaction on the QuickWeb server in Sydney. Format: dd MMM yyyy HH:mm:ss. |
responseCode |
The two digit response code. See Response Codes. |
responseDescription |
The description of the response code. See Response Codes. |
summaryCode |
The one digit summary code. See Response Codes. |
successFlag |
true when the transaction was successful, otherwise false. |
| Custom fields | Any custom parameters that you included in the handoff will be sent back to you. That is, any parameters prefixed with custom will be included in this notification. For example: customTitle, customPayeeName |
If you choose to receive the data as XML, the parameters listed in the table above will instead be built into an XML document. This document will be passed to your server in the body of the request. The request will have a content-type of application/xml.
The following changes may occur at any time and without notice:
- Adding new fields.
- Changing the order of fields.
Your software must be written to handle these types of changes.
An example XML response
POST /payments HTTP/1.1
Host: yoursite.com.au
Content-Type: application/xml
<PaymentResponse>
<sourceCode>Net</sourceCode>
<receiptNumber>1003548481</receiptNumber>
<communityCode><YOUR_COMMUNITY_CODE></communityCode>
<supplierBusinessCode><YOUR_SUPPLIER_CODE></supplierBusinessCode>
<customerReferenceNumber>CUSTOMER1</customerReferenceNumber>
<paymentReference>PAYMENT1</paymentReference>
<paymentAmount>624.00</paymentAmount>
<surchargeAmount>24.00</surchargeAmount>
<cardScheme>VISA</cardScheme>
<settlementDate>20170110</settlementDate>
<createdDateTime>10 Jan 2017 01:11:31</createdDateTime>
<responseCode>00</responseCode>
<responseDescription>Approved or completed successfully</responseDescription>
<summaryCode>0</summaryCode>
<successFlag>true</successFlag>
</PaymentResponse>
These parameters relate to a recurring payment schedule.
| Parameter Name | Description |
|---|---|
recurringScheduleCode |
The unique recurring payment schedule identifier. This value is provided in the Secure token handoff or generated by QuickWeb. |
recurringScheduleFirstDate |
The first date of the recurring payment schedule in yyyyMMdd format. For example, 20170110. |
recurringScheduleFrequency |
The frequency. One of:
|
recurringSchedule |
The recurring payment schedule type. One of:
|
recurringScheduleTotalAmount |
The total amount of the schedule. |
recurringScheduleNumberOfPayments |
The number of payments remaining in the schedule. |
recurringScheduleContinueUntilDate |
The last payment date of the schedule. Provided for CONTINUE_UNTIL_DATE schedule types only. |
Important
The following changes may occur at any time and without notice:
- Adding new fields.
- Changing the order of fields.
Your software must be written to handle these types of changes.
An example XML response for a new recurring payment
POST /payments HTTP/1.1
Host: yoursite.com.au
Content-Type: application/xml
<PaymentResponse>
<connectionType>QUICKWEB</connectionType>
<product>RECURRING</product>
<communityCode><YOUR_COMMUNITY_CODE></communityCode>
<supplierBusinessCode><YOUR_SUPPLIER_CODE></supplierBusinessCode>
<customerReferenceNumber>123456789</customerReferenceNumber>
<recurringScheduleCode>37659576</recurringScheduleCode>
<recurringScheduleFirstDate>20170123</recurringScheduleFirstDate>
<recurringScheduleNumberOfPayments>4</recurringScheduleNumberOfPayments>
<recurringScheduleTotalAmount>100.00</recurringScheduleTotalAmount>
<recurringScheduleFrequency>WEEKLY</recurringScheduleFrequency>
<recurringSchedule>STOP_AFTER_SET_AMOUNT</recurringSchedule>
<paymentAmount>32.72</paymentAmount>
<surchargeAmount>0.64</surchargeAmount>
<cardScheme>VISA</cardScheme>
<cardholderName>John Smith</cardholderName>
<maskedCardNumber>424242...242</maskedCardNumber>
<expiryDateMonth>01</expiryDateMonth>
<expiryDateYear>2020</expiryDateYear>
</PaymentResponse>
Cash Applied File
The purpose of the report is to provide you with a detailed list of all the QuickWeb transactions for that day. You can then load the report into your system and use it to help reconcile your bank statements.
Note:
- It will only include transactions that occur before the 6pm cut off. Any transactions that occur after the cut off will be included in the next file.
- QuickStream generates the Cash Applied File at 8pm (Sydney time) each banking day.
- You can choose to include all the payments in one single file or split the payments into multiple files based on the business group they belong to.
- You can choose to include only the successful transactions or both the successful and rejected transactions.
File format
The standard CSV format is a "comma separated value" file that we have created for our customers. The file consists of one header row followed by multiple detail rows.
There are two types of rows in the Cash Applied File:
The header row contains the field names.
For example
"Settlement Date","Receipt Number","Supplier Business Code","Reference Number", ...etc...
The detail row contains the details for a particular transaction.
For example
"4-Jun-2016","186658002","123456","1200001", ...etc...
The transaction row contains details of your customer's credit card payment or refund. A credit card payment is represented with a positive amount in the Payment Amount column. A credit card refund is represented with a negative amount in the Payment Amount column.
You can choose to have only successful transactions included in the file, or if you prefer you can have both successful and rejected transactions in the file.
| Column Name | Description |
|---|---|
| Settlement Date | The settlement date of the payment. The default date format is DD-MMM-YYYY. For example: 20-Jun-2012 For refunds, this field contains the settlement date of the refund. For example, credit card transactions after 6pm Sydney time will settle on the following banking day. See Response codes and transaction settlement for more information. |
| Receipt Number | The unique receipt number generated by QuickStream. This value can be used later to locate the payment in QuickStream. For refunds, this field contains the new receipt number that was generated at the time of the refund. It is not the receipt number of the original payment. |
| Supplier Business Code | Your QuickStream supplier business code. You will be notified of this value during the implementation. For refunds, this is the supplier business code of the original payment. |
| Reference Number | This is an optional column. It will be included if your system provides a referenceNumber parameter to QuickStream during the secure token request. This value represents a unique payment level reference created by your system. For example: invoice number, credit note number, fine code or transaction reference. For refunds, this is the reference number of the original payment. |
| Customer Reference Number | This is an optional column. It will be included if your system provides a customerReferenceNumber parameter to QuickStream during the secure token request. This value represents a unique customer level reference created by your system. For example: customer number, family code, company code, BPAY number. For refunds, this is the customer reference number of the original payment. |
| Payment Amount | For credit card payments this value is positive. It represents the amount that QuickStream used when it attempted the transaction. It includes any surcharge amount that needed to be paid. The amount is in dollars and cents. For example, an amount of one thousand and fifteen dollars will be provided as: 1015.00For refunds, this value is negative. It represents the total refund amount. For example, a refund of one thousand and fifteen dollars will be provided as: -1015.00 |
| Principal Amount | For credit card payments this value is positive. It represents the amount that QuickStream used when it attempted the transaction. It does not include any surcharge amount that needed to be paid. The amount is in dollars and cents. For example, an amount of one thousand dollars will be provided as: 1000.00For refunds, this value is negative. It represents the total refund amount. For example, a refund of one thousand dollars is shown as : -1000.00 |
| Surcharge Amount | For credit card payments this value is positive. It represents the surcharge amount that QuickStream included in the transaction. The amount is in dollars and cents. For example, an amount of fifteen dollars will be provided as: 15.00For refunds, this value is negative. It represents the surcharge amount that was included in the refund. For example, an amount of fifteen dollars will be provided as: -15.00 |
| Response Code | The two digit response code. For example: 41See Response codes and transaction settlement for the list of codes. For refunds, this field contains the response code for the refund - not the code of the original payment. |
| Response Description | The description of the response code. For example: Lost cardSee Response codes and transaction settlement for the list of codes and their corresponding description. For refunds, this field contains the response description for the refund - not the description of the original payment. |
| Summary Code | The one digit summary code. For example: 1 See Response codes and transaction settlement for the list of summary codes. For refunds, this field contains the summary code for the refund - not the summary code of the original payment. |
| Soft Decline Code | A value of 1 indicates the response code represents a soft-decline.For example: 1 See Response codes and transaction settlement for the list of response codes. For refunds, this field contains the soft decline code for the refund - not the soft decline code of the original payment. |
| Retry Attempt Number | When your facility has Automatic Retry of Failed Payments configured, this is the number of times the transaction was attempted automatically. |
| Card Scheme | (Credit cards only) The type of credit card the customer used to make the payment. QuickStream will return one of the following values:VISAMASTERCARDAMEXDINERSJCBUNIONPAYUNKNOWN (for bank account payments)For refunds, this is the card type used to make the original payment. |
| Card or Account Holder Name | The account name for bank account payments, or cardholder name that the customer entered. For example: John Smith For refunds, this is the card holder name associated with the original payment. |
| Masked Card Number | The credit card number that the customer entered. For security reasons part of this number will be masked. For example: 45647xxxxxxx004For refunds, this is the card number associated with the original payment. |
| BSB Number | For bank account payments, this field is populated with the BSB the customer entered on the Payment Details page. For example: 650-000. For credit card payments/refunds this field is empty. |
| Account Number | For bank account payments, this field is populated with the account number the customer entered on the Payment Details page. For example: 987654321. For credit card payments/refunds this field is empty. |
| Created Date Time | The date and time the transaction was made on the QuickStream server in Sydney. The default format is DD-MMM-YYYY hh:mm. For example: 20-Jun-2012 15:04 For refunds, this is the date and time the refund was made on the QuickStream server in Sydney. |
| Source Product | The payment channel used to make the transaction. For example: RECURRING.For refunds, this is the payment channel used to make the refund. |
| Parent Receipt Number | For credit card payments, this field is blank. For refunds, this field is populated with the receipt number of the original credit card payment. |
Note: in addition to the above data we can also include your custom parameters. That is, any custom parameter you send to QuickStream during the secure token request can be provided in a separate column in this file. If you would like to make use of this feature please advise your implementation manager.
Sample file
Credit card payments only example
"Settlement Date","Receipt Number","Supplier Business Code","Reference Number","Payment Amount","Surcharge Amount","Response Code","Response Description","Summary Code","Soft Decline Code","Retry Attempt Number","Card Scheme","Card Holder Name","Masked Card Number","Created Date Time","Source Product","Parent Receipt Number"
"10-Sep-2012","1003548481","YOURCOMPANY","12345678","34.28","32.95","1.33","00","Approved or completed successfully","0","0","0","VISA","John Smith","456471xxxxxxx004","10-Sep-2012 13:29","RECURRING",""
Bank account payments only example
This example shows a bank account payment within a file that may also have credit card payments.
"Settlement Date","Receipt Number","Supplier Business Code","Payment Reference","Payment Amount","Surcharge Amount","Response Code","Response Description","Summary Code","Soft Decline Code","Retry Attempt Number","Card Scheme","Card or Account Holder Name","Masked Card Number","BSB Number","Account Number","Created Date Time","Source Product","Parent Receipt Number"
"06-Aug-2014 00:00","1176949511","YOURCOMPANY","12345678","100.00","100.00","0.00","G","WBC Exception Processing released successfully","0","0","0","","John Smith","","032-002","123465","06-Aug-2014 01:11","RECURRING",""
Retrieving a Cash Applied File
The file may be retrieved using iLink or available for download in QuickStream Portal.
- iLink is a service that allows you to securely send files to and receive files. You can do this manually or via straight through connectivity that uses SFTP, HTTPS or SOAP.
- QuickStream Portal is the administrative interface for QuickStream products, such as QuickWeb and QuickConnect.
See iLink Documentation for more information.
To download a Cash Applied File from QuickStream Portal:
- Sign into QuickStream Portal
- Click Administration -> Transactions and Reports -> Facility Reports
- Your report will appear on this page.
- Select the download icon to retrieve a Cash Applied File.
- Use the date filters to find older files.
Manage your security settings
QuickStream Portal is your administration interface for QuickStream. You can manage the following security settings:
- Whitelist the IP addresses for the Secure Token Requests
- Whitelist the domain addresses for the Server to server notification
- View your connection details, including your credentials for authentication with QuickStream.
Manage your IP white list
The IP address white list holds the allowed IP addresses for secure token requests. Requests made from IP addresses that are not in this white list will be rejected, and will not receive a security token.
- Sign into QuickStream Portal
- Click Administration -> Facility Settings -> Manage IP Address White List
- Select Add IP Address to white list a new IP address, or select the edit or delete icons to manage existing entries.
Manage your domain white list
The domain white list holds the allowed domains or URLs for sending server to server notifications. Server to server notifications to URLs that are not in this white list will be rejected, and will not receive a server to server notification.
- Sign into QuickStream Portal
- Click Administration -> Facility Settings -> Manage Domain White List
- Select Add Domain to white list a new domain or specific URL, or select the edit or delete icons to manage existing entries.
You can white list your entire domain, or a specific URL. For example,
- To receive server to server notifications from any URL on your website, white list
yoursite.com.au. - To receive server to server notifications at a specific URL on your website, white list
yoursite.com.au/payments.
View your connection details
Connection details are required to interact with QuickStream in each environment. These connection details refer to values you must pass for the Secure Token Handoff.
- Sign into QuickStream Portal
- Click Administration -> Facility Settings -> View Connection Details
- Select Secure Token Request to view connection details for the Secure Token Request.
Manage server to server notifications
Server to server notifications are submitted directly to your system. A HTTP POST with form data or XML sent from QuickStream after a successful credit card payment attempt.
- Sign into QuickStream Portal
- Click Administration -> Facility Settings -> Manage Server to Server Notification
Destination URL
This option can be used for:
- QuickWeb
- QuickWeb Recurring
- QuickWeb Invoicing
- QuickConnect
- QuickVault Web
- QuickVault Connect
- QuickTerminal
- QuickVoice
You can override this by passing serverReturnUrl in a Secure Token Handoff for the above products except the QuickTerminal and QuickVoice products.
Notification format
Choose HTTPS POST or XML.
| Control | Description |
|---|---|
HTTPS POST |
The server to server notification will be sent as HTTPS POST form parameters. |
XML |
The server to server notification will be sent as HTTPS POST with XML as the request body. |
Automatic retry of failed notifications
Configure the number of times you wish QuickStream to re-send failed notifications. A failed notification is one where a server cannot be reached, or a server responds with a HTTP status code other than 200 OK.
| Control | Description |
|---|---|
| If the original attempt fails | Choose the time until the system retries the first time. |
| If this second attempt fails, retry | Choose number of times the system should retry after the second attempt. |
| at intervals of | Choose the interval between each subsequent retry. |
| If all attempts fail, send an email to | Enter the email address the system will notify when a server to server notification cannot be sent. You can override this by passing errorEmailToAddress in a Secure Token Handoff. |
For example the following setting produces a schedule:
| Setting | Value |
|---|---|
| If the original attempt fails | Retry 1 minute after the original attempt |
| If this second attempt fails, retry | 3 more times |
| at intervals of | 10 mins |
| If all attempts fail, send an email to | john@yoursite.com.au |
This setup will send the following server to server notifications:
- Credit card payment made at 12:00 PM
- Server to server notification sent at 12:00 PM and failed.
- Server to server notification retried at 12:01 PM and failed.
- Server to server notification retried at 12:11 PM and failed.
- Server to server notification retried at 12:21 PM and failed.
- Server to server notification retried at 12:31 PM and failed.
- Stop retrying and send an email to john@yoursite.com.au.
Troubleshooting security settings
QuickStream Portal's Activity Log shows:
-
Unsuccessful secure token request attempts.
-
Unsuccessful server to server notification sending attempts.
-
Sign into QuickStream Portal
-
Click Administration -> Activity Log
-
Select the date you wish to view logs for.
Types of entries you may see for unsuccessful secure token requests are:
- A Secure Token Request was received from an IP address that is not in the IP Address White-list for this facility.
Types of entries you may see for unsuccessful server to server notification attempts are:
- Server to server postback to URL X failed as no username or password is configured for this facility.
- Server to server postback URL X using HTTP, but should be HTTPS.
- The URL X is not listed as an allowed end point to post response information to.
- The URL X is invalid and cannot be used as an end point to post response information to.
- Received HTTP N instead of HTTP 200 from endpoint X.
Handling declined payments
Your customer's financial institution may decline transactions. A declined transaction will receive a Summary Code and a Response Code. Find the full list of Response Codes at Response Codes.
Each response code may describe a hard decline or a soft decline.
- A hard decline indicates the transaction will not likely be successful if retried. For example, Response Code 14 - Invalid Card Number may not be successful if retried.
- A soft decline indicates the transaction can possibly be retried and by successful. For example, Response Code 51 - Not sufficient funds could be retried at a later day.
Response codes indicating a soft decline
Some response codes may indicate a soft decline. A soft declined transaction may indicate the transaction can be retried successfully at a later date.
See Response Codes for details.
Manually retrying payments
QuickStream Portal has a function to list any recurring payments that were soft declined and can be retired.
- Sign into QuickStream Portal
- Click Transactions and Reports -> Retry Failed Payments
- Choose a payment to retry. Either select the receipt number or an option from the context menu to proceed.
Automatically retrying payments
QuickStream Portal allows you to set up a schedule to automatically retry any soft declined payments.
- Sign into QuickStream Portal
- Click Administration -> Facility Settings -> Automatic Retry of Failed Payments
- Choose to automatically retry recurring payments.
- Select the 1st, 2nd and 3rd failed attempt options to automatically retry 4, 6 or 8 days after each attempt.
Customer snapshot file
You may wish to reconcile the customer details in QuickStream with the details stored in your system. This is helpful when changes are made to customer details, recurring payments or their accounts by other QuickStream products. For example, if you have QuickTerminal Recurring or QuickWeb Recurring then new schedules and accounts may have been created for your customers during a day. QuickStream can send a Customer Snapshot File. This file contains all the details of your customers, their accounts and their recurring payments in QuickStream. This file is sent daily at 01:00 AEST, and contains a full listing of our customer database.
This is an optional feature and you must request this during your Westpac implementation project with your Qvalent resource.
File format
The Customer Snapshot File is a comma-separated value (CSV) file. The following table describes the fields in the file format. This file can be used to keep your systems in sync with QuickStream as changes are made to your customer's set up.
Detail record
Each record describes information about your customer with their accounts and associated payment schedules. Each line has customer and account information. Applicable accounts will also have payment schedule information.
| Field Name | Description | Sample Value |
|---|---|---|
| CustomerNumber | Unique customer number. | CUSTOMER1 |
| CustomerName | The customer name. | John's Cakes |
| Status | The status of the customer. | One of:
|
| EmailAddress | The customer's contact email address. | john@johnscakes.biz.au |
| PhoneNumber | The customer's contact phone number. Where your solution requires notifications to the customer via SMS, this phone number must be a mobile phone number. | +61421559774 |
| AddressLine1 | The first line of the customer's address. | Unit 11 |
| AddressLine2 | The second line of the customer's address. | Level 31 |
| AddressLine3 | The third line of the customer's address. | Sunset Blvd |
| City | The city name of the customer's address. | Sydney |
| State | The state of the customer's address | NSW |
| PostalCode | The postal code of the customer's address. | 2000 |
| Country | The country of the customer's address. | Australia |
| PreferredNotificationMedium | The preferred notification medium for the customer. | One of:
|
| AccountIdentifier | The unique account identifier allocated by QuickStream. Use this value to match up the account used by a recurring payment. | 123456781 |
| AccountToken | The QuickVault account token. | TOKEN1 |
| AccountStatus | The status of the account. | One of:
|
| AccountName | For a credit card account, this is the Cardholder Name. For a bank account, this is the Account holder Name. | John Smith |
| CreditCardNumber | The masked credit card number for credit card acccounts | 424242xxx242 |
| ExpiryDate | The expiry date for credit card acccounts An expiry date in format MMyyyy where MM is the two digit month, and yyyy is the four digit year.For example, January 2019 is 012019. |
012019 |
| BSBNumber | The BSB number for bank accounts. | 032-002 |
| AccountNumber | The bank account number for bank accounts. | 123465 |
| PaymentScheduleId | A unique identifier for the recurring payment schedule. | 12345678 |
| RecurringPaymentStatus | The status of the recurring payment schedule. One of:
|
ENABLE |
| Description | Short description of the payment schedule. | Open ended schedule with daily credit card payments of AUD 50.00 |
| Frequency | The frequency of the recurring payment schedule. This is the frequency that the regular payment amount will be attempted as a transaction. One of:
|
WEEKLY |
| NextPaymentDate | The date of the next payment on the schedule. A value date in the format dd MMM yyyy.
01 Jan 2016. |
01 Jan 2016 |
| RegularPaymentAmount | The regular amount payment for the schedule. A non-zero, positive dollar amount in the format 0.00. For example, 10.00, 100.50, 1000.75, 100000.00 etc. |
100.50 |
Sample file
This sample file lists one customer with one account and a weekly payment schedule.
Customer Number,Customer Name,Customer Status,Email Address,Phone number,Address Line 1,Address Line 2,Address Line 3,Address Line 4,City,State,Post Code,Country,Notification Medium,AccountID,Account Token,Account Status,Account Name,Masked CC Number,Expiry Date,BSB,Masked Account Number,Plan ID,Payment Status,Description,Frequency,Next Payment Date,Payment Amount
"JOHNSMITH","John B. Smith","ENABLE","jsmith@customer.com","+61421559774","Unit 11","Level 31","Sunset Blvd","Sydney","NSW","2000","EMAIL""JOHNSMITH","123456781","","ENABLE","John Smith","424242xxx242","012019","","","123456781","ENABLE","","WEEKLY","01 Jan 2016","50.00"
Testing
The testing process is also known as User Acceptance Testing or UAT. The purpose of UAT is to test the entire solution as thoroughly as possible. The tests are carried out by the relevant participants from your business. We recommend you create a test plan which details the scenarios your verification team need to cover during their testing.
Our Recurring tests covered:
- Approved transactions
- Declined transactions
- Invalid payment details (eg, invalid credit card number)
- Duplicate payments
Our reporting tests covered:
- Retrieving reports (either via iLink or QuickStream Portal)
- Uploading reports into our system
Our QuickStream Portal administration tests covered:
- Creating users
- Assigning roles to users
- Searching for payments
- Refunding and voiding payments
- Search for customers
- Creating customers
- Modifying customers
- Adding recurring payments to customers
- Modifying recurring payments
- Stopping recurring payments
To support the testing process a test environment is provided. This environment is also known as the 'support environment' or 'support'. It simulates the banking system, allowing you to test credit card payments without affecting any live bank accounts.
The test environment will remain in place after you go live. This will enable you to test any future changes before they are released into production. The test environment is provided on a best-efforts basis. It will occasionally be unavailable due to upgrades to our base products. Please factor this into your testing time lines and raise any concerns you have with your implementation manager.
Test URLs and IP addresses
Test account numbers
Sign off
After you have completed your user acceptance testing you must send a 'sign off' email to your Qvalent implementation manager. The email will state that you have successfully tested all aspects of the solution and you are ready for it to be moved into production.
A sample sign off email is included below.
To: Qvalent_implementation_manager
Cc: Westpac_implementation_manager
Subject: Sign off
We have successfully completed user acceptance testing. Our tests covered all areas of the solution. They included payments, reporting and QuickStream Portal admin tasks.
Our payment tests covered:
- Approved transactions
- Declined transactions
- Invalid payment details
- Duplicate payments
Our reporting tests covered:
- Retrieving the daily payment report
- Uploading the payment report into our system
Our QuickStream Portal admin tests covered:
- Creating users
- Assigning roles to users
- Searching for payments
- Refunding payments
- Resending receipts
We are satisfied with the results of these tests and we are ready for the solution to be moved into production.
Regards, John Smith
Production lodgement
See Production lodgement.
Production URLs and IP addresses
3D Secure Card Payments
Use QuickWeb to accept card payments verified using 3D Secure. 3D Secure is an additional layer of authentication that protects you from liability for fraudulent card payments. Unlike regular card payments, 3D Secure requires cardholders to complete an additional verification step with the card-issuer.
3D Secure is also known as Mastercard SecureCode and Verified by Visa.
See 3D Secure Card Payments for QuickWeb for more.