Merchant Warrior - API Documentation Warrior API...Direct API The following sub-sections will...

122
Merchant Warrior - API Documentation Version 1.1 Date: 2019-10-11

Transcript of Merchant Warrior - API Documentation Warrior API...Direct API The following sub-sections will...

Merchant Warrior - API DocumentationVersion 1.1Date: 2019-10-11

IntroductionIntroduction

Merchant WarriorMerchant Warrior (MW) is an Australian based payment provider that offers a range of online payment solutions to Merchants (MW) is an Australian based payment provider that offers a range of online payment solutions to Merchants

worldwide.worldwide.

MW is a Tier 1 MW is a Tier 1 . This qualification is obtained annually, after an independent audit carried out by a certified. This qualification is obtained annually, after an independent audit carried out by a certified

QSA and QPSAC.QSA and QPSAC.

This information has been provided to assist with the integration and implementation of services to the MW platform.This information has been provided to assist with the integration and implementation of services to the MW platform.

Production API Endpoint

https://api.merchantwarrior.com/post/

Sandbox API Endpoint

https://base.merchantwarrior.com/post/

Replace snippets below with your merchantUUID, apiKey and correct hash.

PCI DSS certified providerPCI DSS certified provider

Page 2 of 127

Direct APIDirect API

The following sub-sections will outline the various API methods present in the The following sub-sections will outline the various API methods present in the Merchant Warrior Direct APIMerchant Warrior Direct API..

IntroductionIntroduction

The Direct API provides you with a single integration point for processing to your Acquirer(s).The Direct API provides you with a single integration point for processing to your Acquirer(s).

You will need to obtain a Merchant UUID, API Key and API passphrase in order to connect to the Direct API. These details will beYou will need to obtain a Merchant UUID, API Key and API passphrase in order to connect to the Direct API. These details will be

issued to you when you create your MW account.issued to you when you create your MW account.

Request FormatRequest Format

API requests are submitted to the Direct API service using API requests are submitted to the Direct API service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

Available MethodsAvailable Methods

The Direct API service consists of the following methods: The Direct API service consists of the following methods:

• • : Performs a purchase transaction on a customer's credit card : Performs a purchase transaction on a customer's credit card

• • : Performs a : Performs a on a customer's credit card on a customer's credit card

• • : Performs a capture request : Performs a capture request

• • : Submits a batch file for processing : Submits a batch file for processing

• • : Retrieves the batch status or processed batch file result : Retrieves the batch status or processed batch file result

• • : Performs a refund request : Performs a refund request

• • : Queries previous credit card transactions : Queries previous credit card transactions

• • : Performs a direct debit transaction on a customer's bank account : Performs a direct debit transaction on a customer's bank account

• • : Queries previous direct debit transactions : Queries previous direct debit transactions

• • : Queries a Bank Identification Number (: Queries a Bank Identification Number ( ) )

• • : Returns a list of settled transactions : Returns a list of settled transactions

• • : Check if a card is participating 3DS scheme and initiate a 3DS authentication. : Check if a card is participating 3DS scheme and initiate a 3DS authentication.

• • : Check the result of a 3DS authentication. : Check the result of a 3DS authentication.

• • : Add a card to the blacklist. : Add a card to the blacklist.

• • : Remove a card out of the blacklist. : Remove a card out of the blacklist.

• • : Query a blacklisted card info.: Query a blacklisted card info.

processCardprocessCard

The processCard method is the method used to perform a purchase request.The processCard method is the method used to perform a purchase request.

Request-ParametersRequest-Parameters

API MethodAPI Method

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

processCardprocessCard

processAuthprocessAuth pre-authorizationpre-authorization

processCaptureprocessCapture

processBatchprocessBatch

retrieveBatchretrieveBatch

refundCardrefundCard

queryCardqueryCard

processDDebitprocessDDebit

queryDDqueryDD

queryBINqueryBIN BINBIN

getSettlementgetSettlement

checkEnrollmentcheckEnrollment

checkPARescheckPARes

addBlacklistedCardaddBlacklistedCard

removeBlacklistedCardremoveBlacklistedCard

queryBlacklistedCardqueryBlacklistedCard

Page 3 of 127

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processCardprocessCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

3DS Parameters3DS Parameters

ParameterParameter RequiredRequired DescriptionDescription

threeDSTokenthreeDSToken NotNotRequiredRequired

This parameter is used to indicate if a transaction has been authenticated. Its value is returned byThis parameter is used to indicate if a transaction has been authenticated. Its value is returned by method. method.

Recurring ParametersRecurring Parameters

ParameterParameter RequiredRequired DescriptionDescription

recurringFlagrecurringFlag Not RequiredNot Required This parameter is used to indicate if a transaction will be marked as recurring. Its value must be 0 or 1. This parameter is used to indicate if a transaction will be marked as recurring. Its value must be 0 or 1. Example:Example: 11

Customer ParametersCustomer Parameters

queryCardqueryCard

checkPARescheckPARes

Page 4 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Must be valid if present. Sending this optional parameter is highly recommended. Must be valid if present. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

Page 5 of 127

ParameterParameter RequiredRequired DescriptionDescription

paymentCardNumberpaymentCardNumber RequiredRequired Only certain card numbers are deemed valid in the test environment. Only certain card numbers are deemed valid in the test environment. See See for more for moreinformation. information. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

paymentCardExpirypaymentCardExpiry RequiredRequired This must be MMYY format. The month must be zero padded if it is less than 10. This must be MMYY format. The month must be zero padded if it is less than 10. Example:Example: 05130513 Valid length:Valid length: 4 digits 4 digits

paymentCardNamepaymentCardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedThis is required by some Acquirers if the transaction is initiatedby the customer. Please contact Merchant Warrior for more information. by the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

processAuthprocessAuth

The processAuth method is used to perform a The processAuth method is used to perform a request. request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processAuthprocessAuth

Authentication ParametersAuthentication Parameters

Test DataTest Data

Transaction Type HashTransaction Type Hash

pre-authorizationpre-authorization

Page 6 of 127

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

3DS Parameters3DS Parameters

ParameterParameter RequiredRequired DescriptionDescription

threeDSTokenthreeDSToken NotNotRequiredRequired

This parameter is used to indicate if a transaction has been authenticated. Its value is returned byThis parameter is used to indicate if a transaction has been authenticated. Its value is returned by method. method.

Customer ParametersCustomer Parameters

queryCardqueryCard

checkPARescheckPARes

Page 7 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,ampersand, space and hyphen characters.ampersand, space and hyphen characters.Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

Page 8 of 127

ParameterParameter RequiredRequired DescriptionDescription

paymentCardNumberpaymentCardNumber RequiredRequired Only certain card numbers are deemed valid in the test environment. Only certain card numbers are deemed valid in the test environment. See See for more for moreinformation. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). information. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

paymentCardExpirypaymentCardExpiry RequiredRequired This must be MMYY format. The month must be zero padded if it is less than 10. This must be MMYY format. The month must be zero padded if it is less than 10. Example:Example: 05130513 Valid length:Valid length: 4 digits 4 digits

paymentCardNamepaymentCardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedThis is required by some Acquirers if the transaction is initiatedby the customer. Please contact Merchant Warrior for more information. by the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

processCaptureprocessCapture

The processCapture method is used to perform a capture request.The processCapture method is used to perform a capture request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processCaptureprocessCapture

Authentication ParametersAuthentication Parameters

Test DataTest Data

Transaction Type HashTransaction Type Hash

Page 9 of 127

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired This amount must be the exact amount submitted with the initial transaction. This is used in theThis amount must be the exact amount submitted with the initial transaction. This is used in theverification hash, and is not the amount that will be refunded. verification hash, and is not the amount that will be refunded. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. PleaseOne of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. Pleasecheck with MW before attempting to process transactions in any currency other than AUD. This field ischeck with MW before attempting to process transactions in any currency other than AUD. This field iscase insensitive. case insensitive. Example:Example: AUDAUD

Capture ParametersCapture Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionIDtransactionID RequiredRequired The The <transactionID><transactionID> is provided to you by Merchant Warrior after an initial pre-authorization is provided to you by Merchant Warrior after an initial pre-authorization(( ) transaction. ) transaction. Example:Example: 1-a1c340c8-7c30-11de-8888-000c29753ad41-a1c340c8-7c30-11de-8888-000c29753ad4

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

captureAmountcaptureAmount RequiredRequired The amount is in the same format as transactionAmount. It cannot be less than 0.01 or more than theThe amount is in the same format as transactionAmount. It cannot be less than 0.01 or more than theinitial transaction amount. initial transaction amount. Example:Example: 10.0010.00

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

processBatchprocessBatch

The processBatch method enables merchants to securely automate the processing of batch files containing credit card, tokenThe processBatch method enables merchants to securely automate the processing of batch files containing credit card, token

transaction data or bank accounts. This method accepts and processes compressed .csv files directly via the Direct API and should betransaction data or bank accounts. This method accepts and processes compressed .csv files directly via the Direct API and should be

implemented when automating a large number of transactions is a requirement. implemented when automating a large number of transactions is a requirement.

The processBatch method will process a batch file and automatically issue a notification via POST to the merchant’s application whenThe processBatch method will process a batch file and automatically issue a notification via POST to the merchant’s application when

the batch file has completed processing. The batch response file (containing the results to all transactions processed via the originalthe batch file has completed processing. The batch response file (containing the results to all transactions processed via the original

processAuthprocessAuth

queryCardqueryCard

Transaction Type HashTransaction Type Hash

Page 10 of 127

batch file) can be sent (and compressed) with the POST notification if requested by the merchant. batch file) can be sent (and compressed) with the POST notification if requested by the merchant.

Sample process and response batch files can be found at the Sample process and response batch files can be found at the section. section.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processBatchprocessBatch

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Batch ParametersGeneral Batch Parameters

ParameterParameter RequiredRequired DescriptionDescription

batchNotifyURLbatchNotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. Example:Example:

batchResponseFileAttachbatchResponseFileAttach NotNotRequiredRequired

The value is a The value is a to denote whether a response file should be attached with the to denote whether a response file should be attached with theasynchronous POST notifications. asynchronous POST notifications. Example:Example: 11

batchResponseFileCompressbatchResponseFileCompress NotNotRequiredRequired

The value is a The value is a to denote whether the response file should be compressed (.zip). to denote whether the response file should be compressed (.zip). Example:Example: 11

Batch File ParametersBatch File Parameters

ParameterParameter RequiredRequired DescriptionDescription

batchFilebatchFile RequiredRequired The batch file The batch file mustmust be in CSV format (.csv) and compressed (.zip). be in CSV format (.csv) and compressed (.zip). Example:Example: Batch.zipBatch.zip

fileHashfileHash RequiredRequired The hash of the batch file. See The hash of the batch file. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

urlHashurlHash RequiredRequired The hash of the batchNotifyURL. See The hash of the batchNotifyURL. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.Example:Example: 511999e54b9ad51ce4c28d7f0550ac81511999e54b9ad51ce4c28d7f0550ac81 Valid length:Valid length: 32 characters 32 characters

Sample FilesSample Files

https://www.example.com/notify.phphttps://www.example.com/notify.php

booleanboolean

booleanboolean

Batch File HashBatch File Hash

Batch URL HashBatch URL Hash

Page 11 of 127

retrieveBatchretrieveBatch

The retrieveBatch method is the method used to retrieve the results of a batch file that has been processed via the The retrieveBatch method is the method used to retrieve the results of a batch file that has been processed via the

method (see above). This method returns a .csv or .zip (depending on whether the merchant requested a compressed response file) filemethod (see above). This method returns a .csv or .zip (depending on whether the merchant requested a compressed response file) file

containing the results of all transactions submitted in the original batch file. containing the results of all transactions submitted in the original batch file.

Sample process and response batch files can be found at the Sample process and response batch files can be found at the section section

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: retrieveBatchretrieveBatch

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Batch ParametersGeneral Batch Parameters

ParameterParameter RequiredRequired DescriptionDescription

batchUUIDbatchUUID RequiredRequired The value of this parameter is assigned to you by Merchant Warrior for every processBatch request. The value of this parameter is assigned to you by Merchant Warrior for every processBatch request. Example:Example: 14dc3311444adc14dc3311444adc

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The hash of the batchUUID. See The hash of the batchUUID. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

refundCardrefundCard

The refundCard method is used to perform a refund of an existing purchase or capture transaction.The refundCard method is used to perform a refund of an existing purchase or capture transaction.

Request-ParametersRequest-Parameters

API MethodAPI Method

processBatchprocessBatch

Sample FilesSample Files

Batch Response HashBatch Response Hash

Page 12 of 127

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: refundCardrefundCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired This amount must be the exact amount submitted with the initial transaction. This is used in theThis amount must be the exact amount submitted with the initial transaction. This is used in theverification hash, and is not the amount that will be refunded. verification hash, and is not the amount that will be refunded. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired The currency must match the one submitted with the initial transaction. This is used in the verificationThe currency must match the one submitted with the initial transaction. This is used in the verificationhash. hash. Example:Example: AUDAUD

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact MerchantThe value of this field is the merchant's store name. Please note that you need to contact MerchantWarrior to enable the storeID feature before you can use this parameter. Warrior to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Refund ParametersRefund Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionIDtransactionID RequiredRequired The The <transactionID><transactionID> returned for the initial transaction. returned for the initial transaction. Example:Example: 1-a1c340c8-7c30-11de-8888-000c29753ad41-a1c340c8-7c30-11de-8888-000c29753ad4

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

refundAmountrefundAmount RequiredRequired The amount is in the same format as transactionAmount. It cannot be less than 0.01 or more than theThe amount is in the same format as transactionAmount. It cannot be less than 0.01 or more than theinitial transaction amount. initial transaction amount. Example:Example: 10.0010.00

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

queryCardqueryCard

queryCardqueryCard

Transaction Type HashTransaction Type Hash

Page 13 of 127

The queryCard method is used to perform a query of an existing transaction. If you lose the original response, never receive aThe queryCard method is used to perform a query of an existing transaction. If you lose the original response, never receive a

response, or if you wish to verify a response, you can use this method.response, or if you wish to verify a response, you can use this method.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: queryCardqueryCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Query ParametersQuery Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionIDtransactionID** Required/ NotRequired/ NotRequiredRequired

The The <transactionID><transactionID> returned for the initial transaction. returned for the initial transaction. Example:Example: 1-a1c340c8-7c30-11de-8888-000c29753ad41-a1c340c8-7c30-11de-8888-000c29753ad4

transactionReferenceIDtransactionReferenceID** Required/ NotRequired/ NotRequiredRequired

The The <transactionReferenceID><transactionReferenceID> sent for the initial transaction. This is a merchant’s reference sent for the initial transaction. This is a merchant’s referenceID for a transaction request sent to Merchant Warrior. ID for a transaction request sent to Merchant Warrior. Example:Example: A257240023321A257240023321

extendedextended Not RequiredNot Required Returns additional information stored with the transaction. This must be in Returns additional information stored with the transaction. This must be in format. format. Example:Example: 11

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Only one of the fields transactionID or transactionReferenceID are required for a queryCard API call. If transactionID is set then Only one of the fields transactionID or transactionReferenceID are required for a queryCard API call. If transactionID is set thentransactionReferenceID is not required. If transactionReferenceID is set then transactionID is not required.transactionReferenceID is not required. If transactionReferenceID is set then transactionID is not required.

processDDebitprocessDDebit

The processDDebit method is used to perform a The processDDebit method is used to perform a request to debit funds from an Australian or New Zealand bank account. request to debit funds from an Australian or New Zealand bank account.

booleanboolean

Query Type HashQuery Type Hash

direct debitdirect debit

Page 14 of 127

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processDDebitprocessDDebit

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters Up to 255 characters

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Customer ParametersCustomer Parameters

queryCardqueryCard

Page 15 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, aposprophe,This field can only contain alphanumeric characters, as well as the full stop, comma, aposprophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

ParameterParameter RequiredRequired DescriptionDescription

paymentAccountBSBpaymentAccountBSB RequiredRequired This field must contain 6 digits. This field must contain 6 digits. Example:Example: 011123011123 Valid length:Valid length: 6 digits 6 digits

paymentAccountNumberpaymentAccountNumber RequiredRequired This must be a valid account number. This must be a valid account number. Example:Example: 123456789123456789 Valid length:Valid length: 4-10 digits 4-10 digits

paymentAccountNamepaymentAccountName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 32 characters Between 3 and 32 characters

Custom ParametersCustom Parameters

Page 16 of 127

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

queryDDqueryDD

The queryDD method is the method used to perform a query of an existing direct debit transaction. If you wish to verify the status of aThe queryDD method is the method used to perform a query of an existing direct debit transaction. If you wish to verify the status of a

transaction or lost the original response or never receive a response, you can use this method. This method will query the internal MWtransaction or lost the original response or never receive a response, you can use this method. This method will query the internal MW

records and return the available stored data for the transaction.records and return the available stored data for the transaction.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: queryDDqueryDD

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Query ParametersQuery Parameters

Transaction Type HashTransaction Type Hash

Page 17 of 127

ParameterParameter RequiredRequired DescriptionDescription

transactionIDtransactionID** Required/ NotRequired/ NotRequiredRequired

The The <transactionID><transactionID> returned for the initial transaction. returned for the initial transaction. Example:Example: 1-a1c340c8-7c30-11de-8888-000c29753ad41-a1c340c8-7c30-11de-8888-000c29753ad4

transactionReferenceIDtransactionReferenceID** Required/ NotRequired/ NotRequiredRequired

The The <transactionReferenceID><transactionReferenceID> sent for the initial transaction. This is a merchant’s reference sent for the initial transaction. This is a merchant’s referenceID for a transaction request sent to Merchant Warrior. ID for a transaction request sent to Merchant Warrior. Example:Example: A257240023321A257240023321

extendedextended Not RequiredNot Required Returns additional information stored with the transaction. This must be in Returns additional information stored with the transaction. This must be in format. format. Example:Example: 11

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Only one of the fields transactionID or transactionReferenceID are required for a queryCard API call. If transactionID is set then Only one of the fields transactionID or transactionReferenceID are required for a queryCard API call. If transactionID is set thentransactionReferenceID is not required. If transactionReferenceID is set then transactionID is not required.transactionReferenceID is not required. If transactionReferenceID is set then transactionID is not required.

queryBINqueryBIN

The queryBIN method is used to determine the banking information (Bank Name, Card Type, Card Country etc) related to a credit/debitThe queryBIN method is used to determine the banking information (Bank Name, Card Type, Card Country etc) related to a credit/debit

card's Bank Identification Number (card's Bank Identification Number ( ).).

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: queryBINqueryBIN

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Query ParametersQuery Parameters

booleanboolean

Query Type HashQuery Type Hash

BINBIN

Page 18 of 127

ParameterParameter RequiredRequired DescriptionDescription

binbin RequiredRequired The six digit BIN of the credit/debit card. The six digit BIN of the credit/debit card. Example:Example: 512346512346

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

binHashbinHash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

The sandbox environment will always return testing BIN information. Accurate BIN information is available in the production environment. The sandbox environment will always return testing BIN information. Accurate BIN information is available in the production environment.

getSettlementgetSettlement

The getSettlement method will return a compressed The getSettlement method will return a compressed archive that contains a archive that contains a file with a list of transactions that have settled file with a list of transactions that have settled

between the dates specified in the request.between the dates specified in the request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: getSettlementgetSettlement

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Query ParametersQuery Parameters

ParameterParameter RequiredRequired DescriptionDescription

settlementFromsettlementFrom RequiredRequired The settlement start range date. This parameter cannot be greater than the The settlement start range date. This parameter cannot be greater than the settlementTosettlementTo parameter. parameter. Example:Example: 2017-05-012017-05-01

settlementTosettlementTo RequiredRequired The settlement end range date. The parameter cannot be a future date. The maximum value for thisThe settlement end range date. The parameter cannot be a future date. The maximum value for thisparameter is today's date. parameter is today's date. Example:Example: 2017-05-022017-05-02

Verification HashVerification Hash

BIN HashBIN Hash

ZipZip CSVCSV

Page 19 of 127

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: f7a04ace7b0c5bf8f24a49bfc73d3805f7a04ace7b0c5bf8f24a49bfc73d3805 Valid length:Valid length: 32 characters 32 characters

The dates specified in The dates specified in settlementFromsettlementFrom and and settlementTosettlementTo are inclusive and the maximum range that can be queried is 7 days. For example, are inclusive and the maximum range that can be queried is 7 days. For example,from 2017-05-01 to 2017-05-07 will return all transactions settled for 7 days from the 1st until the 7th.from 2017-05-01 to 2017-05-07 will return all transactions settled for 7 days from the 1st until the 7th.

Sample Request

curl -X POST \ -d method="checkEnrollment" \ -d merchantUUID="5265f8eed6a19" \ -d apiKey="ksmnwxab" \ -d transactionAmount="1.00" \ -d transactionCurrency="AUD" \ -d transactionProduct="Test Product" \ -d customerIP="1.1.1.1" \ -d paymentCardName="Test Customer" \ -d paymentCardNumber="5123456789012346" \ -d paymentCardExpiry="0521" \ -d hash="b55552ff426d7e3d4885465d27ea0062" https://api.merchantwarrior.com/post/

require 'net/http'require 'uri'

uri = URI.parse("https://api.merchantwarrior.com/post/")request = Net::HTTP::Post.new(uri)request.set_form_data( 'method' => 'checkEnrollment', 'merchantUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'transactionAmount' => '1.00', 'transactionCurrency' => 'AUD', 'transactionProduct' => 'Test Product', 'customerIP' => '1.1.1.1', 'paymentCardName' => 'Test Customer', 'paymentCardNumber' => '5123456789012346', 'paymentCardExpiry' => '0521', 'hash' => 'b55552ff426d7e3d4885465d27ea0062')

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request)end

puts response.body

Settlement Type HashSettlement Type Hash

Page 20 of 127

import requests

data = { 'method': 'checkEnrollment', 'merchantUUID': '5265f8eed6a19', 'apiKey': 'ksmnwxab', 'transactionAmount': '1.00', 'transactionCurrency': 'AUD', 'transactionProduct': 'Test Product', 'customerIP': '1.1.1.1', 'paymentCardName': 'Test Customer', 'paymentCardNumber': '5123456789012346', 'paymentCardExpiry': '0521', 'hash': 'b55552ff426d7e3d4885465d27ea0062'}

r = requests.post('https://api.merchantwarrior.com/post/', data = data)

print(r.text)

Page 21 of 127

<?php// Setup the POST urldefine('MW_API_ENDPOINT', 'https://api.merchantwarrior.com/post/');

// Setup POST data$postData = array ( 'method' => 'checkEnrollment', 'merchantUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'transactionAmount' => '1.00', 'transactionCurrency' => 'AUD', 'transactionProduct' => 'Test Product', 'customerIP' => '1.1.1.1', 'paymentCardName' => 'Test Customer', 'paymentCardNumber' => '5123456789012346', 'paymentCardExpiry' => '0521', 'hash' => 'b55552ff426d7e3d4885465d27ea0062');

// Setup CURL defaults$curl = curl_init();

// Setup CURL params for this requestcurl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_URL, MW_API_ENDPOINT);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData, '', '&'));

// Run CURL$response = curl_exec($curl);$error = curl_error($curl);

// Check for CURL errorsif (isset($error) && strlen($error)) { throw new Exception("CURL Error: {$error}");}

// Parse the XML$xml = simplexml_load_string($response);

// Convert the result from a SimpleXMLObject into an array$xml = (array)$xml;

// Validate the response - the only successful code is 0$status = ((int)$xml['responseCode'] === 0) ? true : false;

// Make the response a little more useable$result = array ( 'status' => $status, 'transactionID' => (isset($xml['transactionID']) ? $xml['transactionID'] : null), 'responseData' => $xml);

exit(var_dump($result));?>

Page 22 of 127

using System;using System.Collections.Generic;using System.Linq;

public class Program { public static void Main(string[] args) { using(var client = new System.Net.WebClient()) { byte[] response = client.UploadValues("https://api.merchantwarrior.com/post/", new System.Collections.Specialized.NameValueCollection() { { "method", "checkEnrollment" }, { "merchantUUID", "578dd399d2373" }, { "apiKey", "dyqxkzse" }, { "transactionAmount", "1.00" }, { "transactionCurrency", "AUD" }, { "transactionProduct", "Test Product" }, { "customerIP", "1.1.1.1" }, { "paymentCardName", "Test Customer" }, { "paymentCardNumber", "5123456789012346" }, { "paymentCardExpiry", "0521" }, { "hash", "d0fb5716a2b85c743ed802bd5bd7284b" }, }); String result = System.Text.Encoding.Default.GetString(response); Console.WriteLine(result); } }}

Imports SystemImports System.Collections.GenericImports System.Linq

Public Module Program Public Sub Main(args As String()) Using client = New System.Net.WebClient() Dim response As Byte() = client.UploadValues( "https://api.merchantwarrior.com/post/", New System.Collections.Specialized.NameValueCollection() From { _ {"method", "checkEnrollment"}, _ {"merchantUUID", "578dd399d2373"}, _ {"apiKey", "dyqxkzse"}, _ {"transactionAmount", "1.00"}, _ {"transactionCurrency", "AUD"}, _ {"transactionProduct", "Test Product"}, _ {"customerIP", "1.1.1.1"}, _ {"paymentCardName", "Test Customer"}, _ {"paymentCardNumber", "5123456789012346"}, _ {"paymentCardExpiry", "0521"}, _ {"hash", "d0fb5716a2b85c743ed802bd5bd7284b"} _ }) Dim result As [String] = System.Text.Encoding.[Default].GetString(response) Console.WriteLine(result) End Using End SubEnd Module

Page 23 of 127

import java.io.*;import java.net.*;import java.util.*;

public class Program{

public static void main(String[] args) { try{ URL url = new URL("https://api.merchantwarrior.com/post/"); Map<String, String> params = new LinkedHashMap<>(); params.put("method", "checkEnrollment"); params.put("merchantUUID", "5265f8eed6a19"); params.put("apiKey", "ksmnwxab"); params.put("transactionAmount", "1.00"); params.put("transactionCurrency", "AUD"); params.put("transactionProduct", "TestProduct"); params.put("customerIP", "1.1.1.1"); params.put("paymentCardName", "TestCard"); params.put("paymentCardNumber", "5123456789012346"); params.put("paymentCardExpiry", "0521"); params.put("hash", "b55552ff426d7e3d4885465d27ea0062");

StringBuilder postData = new StringBuilder(); for (Map.Entry<String, String> param : params.entrySet()) { if (postData.length() != 0) postData.append('&'); postData.append(param.getKey()); postData.append('='); postData.append(param.getValue()); } HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(postData.toString()); writer.flush();

BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; StringBuilder sb = new StringBuilder(); while((line = reader.readLine()) != null){ sb.append(line); } System.out.println(sb.toString()); writer.close(); reader.close(); } catch(Exception ex){ ex.printStackTrace(); } }

}

Sample Response

Page 24 of 127

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <responseCode>0</responseCode> <responseMessage>Operation successful</responseMessage> <acsURL>https://example.aspx?ReqType=0</acsURL> <paReq>eNpVUsFu2zAMvesrchjQ</paReq> <enrolled>Y</Enrolled> <eci>5</Eci></mwResponse>

checkEnrollmentcheckEnrollment

The checkEnrollment method is the method used to initiate a 3DS authentication.The checkEnrollment method is the method used to initiate a 3DS authentication.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: checkEnrollmentcheckEnrollment

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal places orThe amount must be formatted to have two decimal places. Any amounts without two decimal places oramounts less than one cent will be rejected. amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. PleaseOne of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. Pleasecheck with MW before attempting to process transactions in any currency other than AUD. This field ischeck with MW before attempting to process transactions in any currency other than AUD. This field iscase insensitive. case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

Customer ParametersCustomer Parameters

Page 25 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerIPcustomerIP Not RequiredNot Required Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

Payment ParametersPayment Parameters

ParameterParameter RequiredRequired DescriptionDescription

paymentCardNumberpaymentCardNumber RequiredRequired Only certain card numbers are deemed valid in the test environment. Only certain card numbers are deemed valid in the test environment. See See for more for moreinformation. information. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

paymentCardExpirypaymentCardExpiry RequiredRequired This must be MMYY format. The month must be zero padded if it is less than 10. This must be MMYY format. The month must be zero padded if it is less than 10. Example:Example: 05130513 Valid length:Valid length: 4 digits 4 digits

paymentCardNamepaymentCardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedThis is required by some Acquirers if the transaction is initiatedby the customer. Please contact Merchant Warrior for more information. by the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Sample Request

curl -X POST \ -d method="checkPARes" \ -d merchantUUID="5265f8eed6a19" \ -d apiKey="ksmnwxab" \ -d PARes="eJzNWVmvm9iy/it" https://api.merchantwarrior.com/post/

Test DataTest Data

Transaction Type HashTransaction Type Hash

Page 26 of 127

require 'net/http'require 'uri'

uri = URI.parse("https://api.merchantwarrior.com/post/")request = Net::HTTP::Post.new(uri)request.set_form_data( 'method' => 'checkPARes', 'merchantUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'PARes' => 'eJzNWVmvm9iy/it')

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request)end

puts response.body

import requests

data = { 'method': 'checkPARes', 'merchantUUID': '5265f8eed6a19', 'apiKey': 'ksmnwxab', 'PARes': 'eJzNWVmvm9iy/it'}

r = requests.post('https://api.merchantwarrior.com/post/', data = data)

print(r.text)

Page 27 of 127

<?php// Setup the POST urldefine('MW_API_ENDPOINT', 'https://api.merchantwarrior.com/post/');

// Setup POST data$postData = array ( 'method' => 'checkPARes', 'merchantUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'PARes' => 'eJzNWVmvm9iy/it');

// Setup CURL defaults$curl = curl_init();

// Setup CURL params for this requestcurl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_URL, MW_API_ENDPOINT);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData, '', '&'));

// Run CURL$response = curl_exec($curl);$error = curl_error($curl);

// Check for CURL errorsif (isset($error) && strlen($error)) { throw new Exception("CURL Error: {$error}");}

// Parse the XML$xml = simplexml_load_string($response);

// Convert the result from a SimpleXMLObject into an array$xml = (array)$xml;

// Validate the response - the only successful code is 0$status = ((int)$xml['responseCode'] === 0) ? true : false;

// Make the response a little more useable$result = array ( 'status' => $status, 'transactionID' => (isset($xml['transactionID']) ? $xml['transactionID'] : null), 'responseData' => $xml);

exit(var_dump($result));?>

Page 28 of 127

using System;using System.Collections.Generic;using System.Linq;

public class Program { public static void Main(string[] args) { using(var client = new System.Net.WebClient()) { byte[] response = client.UploadValues("https://api.merchantwarrior.com/post/", new System.Collections.Specialized.NameValueCollection() { { "method", "checkPARes" }, { "merchantUUID", "578dd399d2373" }, { "apiKey", "dyqxkzse" }, { "PARes", "eJzNWVmvm9iy/it" }, }); String result = System.Text.Encoding.Default.GetString(response); Console.WriteLine(result); } }}

Imports SystemImports System.Collections.GenericImports System.Linq

Public Module Program Public Sub Main(args As String()) Using client = New System.Net.WebClient() Dim response As Byte() = client.UploadValues( "https://api.merchantwarrior.com/post/", New System.Collections.Specialized.NameValueCollection() From { _ {"method", "checkPARes"}, _ {"merchantUUID", "578dd399d2373"}, _ {"apiKey", "dyqxkzse"}, _ {"PARes", "eJzNWVmvm9iy/it"} _ }) Dim result As [String] = System.Text.Encoding.[Default].GetString(response) Console.WriteLine(result) End Using End SubEnd Module

Page 29 of 127

import java.io.*;import java.net.*;import java.util.*;

public class Program{

public static void main(String[] args) { try{ URL url = new URL("https://api.merchantwarrior.com/post/"); Map<String, String> params = new LinkedHashMap<>(); params.put("method", "checkPARes"); params.put("merchantUUID", "5265f8eed6a19"); params.put("apiKey", "ksmnwxab"); params.put("PARes", "eJzNWVmvm9iy/it");

StringBuilder postData = new StringBuilder(); for (Map.Entry<String, String> param : params.entrySet()) { if (postData.length() != 0) postData.append('&'); postData.append(param.getKey()); postData.append('='); postData.append(param.getValue()); } HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(postData.toString()); writer.flush();

BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; StringBuilder sb = new StringBuilder(); while((line = reader.readLine()) != null){ sb.append(line); } System.out.println(sb.toString()); writer.close(); reader.close(); } catch(Exception ex){ ex.printStackTrace(); } }

}

Sample Response

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <responseCode>0</responseCode> <responseMessage>Operation successful</responseMessage> <threeDSToken>8e86aef68037e8849980</threeDSToken> <threeDSResult>N</threeDSResult> <threeDSEci>7</threeDSEci> <threeDSXid>857e2347c329eec31c75</threeDSXid> <threeDSCavv></threeDSCavv></mwResponse>

Page 30 of 127

checkPARescheckPARes

The checkPARes method is the method used to verify a 3DS result.The checkPARes method is the method used to verify a 3DS result.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: checkPARescheckPARes

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

3DS Verification Parameters3DS Verification Parameters

ParameterParameter RequiredRequired DescriptionDescription

PAResPARes RequiredRequired The value of this parameter is returned by Customer's issuer bank. The value of this parameter is returned by Customer's issuer bank. Example:Example: eJzNWVmvm9iy/iteJzNWVmvm9iy/it

Production API Endpoint

https://api.merchantwarrior.com/partner/

Sandbox API Endpoint

https://base.merchantwarrior.com/partner/

Replace snippets below with your partnerUUID, apiKey and correct hash.

Page 31 of 127

Partner APIPartner API

The following sub-sections will outline information in relation to the The following sub-sections will outline information in relation to the Merchant Warrior Partner APIMerchant Warrior Partner API..

IntroductionIntroduction

The Merchant Warrior Partner API enables approved development and industry partners to generate merchant accounts in real-time.The Merchant Warrior Partner API enables approved development and industry partners to generate merchant accounts in real-time.

You will need to obtain a Partner UUID, API Key and API passphrase in order to use this feature. These details will be made availableYou will need to obtain a Partner UUID, API Key and API passphrase in order to use this feature. These details will be made available

to you after your Partner application has been processed.to you after your Partner application has been processed.

Request FormatRequest Format

API requests are submitted to this service using API requests are submitted to this service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

Available MethodsAvailable Methods

• • : Create an MW merchant account : Create an MW merchant account

• • : Check a merchant creation request: Check a merchant creation request

Sample Request

curl -X POST \ -d method="addMerchant" \ -d partnerUUID="5265f8eed6a19" \ -d apiKey="ksmnwxab" \ -d merchantCompanyLegalName="Test Company Pty Ltd" -d merchantCompanyTradingName="Test Company" -d merchantCompanyRegNumber="123456789" -d merchantCountry="AU" \ -d merchantState="QLD" \ -d merchantCity="Brisbane" \ -d merchantStreet="123 Test Street" \ -d merchantPostcode="4000" \ -d merchantTimezone="Australia/Brisbane" \ -d merchantIndustry="Professional Services" \ -d merchantWebsite="http://www.merchantwarrior.com" \ -d merchantContactName="join" \ -d merchantContactEmail="[email protected]" \ -d merchantContactPhone="61731665489" \ -d merchantContactMobile="61731665489" \ -d merchantBillingContactName="join" \ -d merchantBillingContactEmail="[email protected]" \ -d fileAttachments="@/var/tmp/bankstatement.zip" \ -d hash="b55552ff426d7e3d4885465d27ea0062" https://api.merchantwarrior.com/partner/

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

addMerchantaddMerchant

checkMerchantcheckMerchant

Page 32 of 127

require 'net/http'require 'uri'

uri = URI.parse("https://api.merchantwarrior.com/partner/")request = Net::HTTP::Post.new(uri)request.set_form_data( 'method' => 'addMerchant', 'partnerUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'merchantCompanyLegalName' => 'Test Company Pty Ltd', 'merchantCompanyTradingName' => 'Test Company', 'merchantCompanyRegNumber' => '123456789', 'merchantCountry' => 'AU', 'merchantState' => 'QLD', 'merchantCity' => 'Brisbane', 'merchantStreet' => '123 Test Street', 'merchantPostcode' => '4000', 'merchantTimezone' => 'Australia/Brisbane', 'merchantIndustry' => 'Professional Services', 'merchantWebsite' => 'http://www.merchantwarrior.com', 'merchantContactName' => 'join', 'merchantContactEmail' => '[email protected]', 'merchantContactMobile' => '61731665489', 'merchantWebsite' => '61731665489', 'merchantBillingContactName' => 'join', 'merchantBillingContactEmail' => '[email protected]', 'fileAttachments' => '@/var/tmp/bankstatement.zip', 'hash' => 'b55552ff426d7e3d4885465d27ea0062')

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request)end

puts response.body

import requests

data = { 'method' : 'addMerchant', 'partnerUUID' : '5265f8eed6a19', 'apiKey' : 'ksmnwxab', 'merchantCompanyLegalName' : 'Test Company Pty Ltd', 'merchantCompanyTradingName' : 'Test Company', 'merchantCompanyRegNumber' : '123456789', 'merchantCountry' : 'AU', 'merchantState' : 'QLD', 'merchantCity' : 'Brisbane', 'merchantStreet' : '123 Test Street', 'merchantPostcode' : '4000', 'merchantTimezone' : 'Australia/Brisbane', 'merchantIndustry' : 'Professional Services', 'merchantWebsite' : 'http://www.merchantwarrior.com', 'merchantContactName' : 'join', 'merchantContactEmail' : '[email protected]', 'merchantContactMobile' : '61731665489', 'merchantWebsite' : '61731665489', 'merchantBillingContactName' : 'join', 'merchantBillingContactEmail' : '[email protected]', 'fileAttachments' : '@/var/tmp/bankstatement.zip', 'hash' : 'b55552ff426d7e3d4885465d27ea0062'}

r = requests.post('https://api.merchantwarrior.com/partner/', data = data)

print(r.text)

Page 33 of 127

<?php// Setup the POST urldefine('MW_API_ENDPOINT', 'https://api.merchantwarrior.com/partner/');

// Setup POST data$postData = array ( 'method' => 'addMerchant', 'partnerUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'merchantCompanyLegalName' => 'Test Company Pty Ltd', 'merchantCompanyTradingName' => 'Test Company', 'merchantCompanyRegNumber' => '123456789', 'merchantCountry' => 'AU', 'merchantState' => 'QLD', 'merchantCity' => 'Brisbane', 'merchantStreet' => '123 Test Street', 'merchantPostcode' => '4000', 'merchantTimezone' => 'Australia/Brisbane', 'merchantIndustry' => 'Professional Services', 'merchantWebsite' => 'http://www.merchantwarrior.com', 'merchantContactName' => 'join', 'merchantContactEmail' => '[email protected]', 'merchantContactMobile' => '61731665489', 'merchantWebsite' => '61731665489', 'merchantBillingContactName' => 'join', 'merchantBillingContactEmail' => '[email protected]', 'fileAttachments' => '@/var/tmp/bankstatement.zip', 'hash' => 'b55552ff426d7e3d4885465d27ea0062');

// Setup CURL defaults$curl = curl_init();

// Setup CURL params for this requestcurl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_URL, MW_API_ENDPOINT);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData, '', '&'));

// Run CURL$response = curl_exec($curl);$error = curl_error($curl);

// Check for CURL errorsif (isset($error) && strlen($error)) { throw new Exception("CURL Error: {$error}");}

// Parse the XML$xml = simplexml_load_string($response);

// Convert the result from a SimpleXMLObject into an array$xml = (array)$xml;

// Validate the response - the only successful code is 0$status = ((int)$xml['responseCode'] === 0) ? true : false;

exit(var_dump($xml));?>

Page 34 of 127

using System;using System.Collections.Generic;using System.Linq;

public class Program { public static void Main(string[] args) { using(var client = new System.Net.WebClient()) { byte[] response = client.UploadValues("https://api.merchantwarrior.com/partner/", new System.Collections.Specialized.NameValueCollection() { {'method' , 'addMerchant'}, {'partnerUUID' , '5265f8eed6a19'}, {'apiKey' , 'ksmnwxab'}, {'merchantCompanyLegalName' , 'Test Company Pty Ltd'}, {'merchantCompanyTradingName' , 'Test Company'}, {'merchantCompanyRegNumber' , '123456789'}, {'merchantCountry' , 'AU'}, {'merchantState' , 'QLD'}, {'merchantCity' , 'Brisbane'}, {'merchantStreet' , '123 Test Street'}, {'merchantPostcode' , '4000'}, {'merchantTimezone' , 'Australia/Brisbane'}, {'merchantIndustry' , 'Professional Services'}, {'merchantWebsite' , 'http://www.merchantwarrior.com'}, {'merchantContactName' , 'join'}, {'merchantContactEmail' , '[email protected]'}, {'merchantContactMobile' , '61731665489'}, {'merchantWebsite' , '61731665489'}, {'merchantBillingContactName' , 'join'}, {'merchantBillingContactEmail' , '[email protected]'}, {'fileAttachments' , '@/var/tmp/bankstatement.zip'}, {'hash' , 'b55552ff426d7e3d4885465d27ea0062'}, }); String result = System.Text.Encoding.Default.GetString(response); Console.WriteLine(result); } }}

Page 35 of 127

Imports SystemImports System.Collections.GenericImports System.Linq

Public Module Program Public Sub Main(args As String()) Using client = New System.Net.WebClient() Dim response As Byte() = client.UploadValues( "https://api.merchantwarrior.com/partner/", New System.Collections.Specialized.NameValueCollection() From { _ {'method' , 'addMerchant'}, _ {'partnerUUID' , '5265f8eed6a19'}, _ {'apiKey' , 'ksmnwxab'}, _ {'merchantCompanyLegalName' , 'Test Company Pty Ltd'}, _ {'merchantCompanyTradingName' , 'Test Company'}, _ {'merchantCompanyRegNumber' , '123456789'}, _ {'merchantCountry' , 'AU'}, _ {'merchantState' , 'QLD'}, _ {'merchantCity' , 'Brisbane'}, _ {'merchantStreet' , '123 Test Street'}, _ {'merchantPostcode' , '4000'}, _ {'merchantTimezone' , 'Australia/Brisbane'}, _ {'merchantIndustry' , 'Professional Services'}, _ {'merchantWebsite' , 'http://www.merchantwarrior.com'}, _ {'merchantContactName' , 'join'}, _ {'merchantContactEmail' , '[email protected]'}, _ {'merchantContactMobile' , '61731665489'}, _ {'merchantWebsite' , '61731665489'}, _ {'merchantBillingContactName' , 'join'}, _ {'merchantBillingContactEmail' , '[email protected]'}, _ {'fileAttachments' , '@/var/tmp/bankstatement.zip'}, _ {'hash' , 'b55552ff426d7e3d4885465d27ea0062'}, _ }) Dim result As [String] = System.Text.Encoding.[Default].GetString(response) Console.WriteLine(result) End Using End SubEnd Module

Page 36 of 127

import java.io.*;import java.net.*;import java.util.*;

public class Program{

public static void main(String[] args) { try{ URL url = new URL("https://api.merchantwarrior.com/partner/"); Map<String, String> params = new LinkedHashMap<>();

params.put('method' , 'addMerchant'); params.put('partnerUUID' , '5265f8eed6a19'); params.put('apiKey' , 'ksmnwxab'); params.put('merchantCompanyLegalName' , 'Test Company Pty Ltd'); params.put('merchantCompanyTradingName' , 'Test Company'); params.put('merchantCompanyRegNumber' , '123456789'); params.put('merchantCountry' , 'AU'); params.put('merchantState' , 'QLD'); params.put('merchantCity' , 'Brisbane'); params.put('merchantStreet' , '123 Test Street'); params.put('merchantPostcode' , '4000'); params.put('merchantTimezone' , 'Australia/Brisbane'); params.put('merchantIndustry' , 'Professional Services'); params.put('merchantWebsite' , 'http://www.merchantwarrior.com'); params.put('merchantContactName' , 'join'); params.put('merchantContactEmail' , '[email protected]'); params.put('merchantContactMobile' , '61731665489'); params.put('merchantWebsite' , '61731665489'); params.put('merchantBillingContactName' , 'join'); params.put('merchantBillingContactEmail' , '[email protected]'); params.put('fileAttachments' , '@/var/tmp/bankstatement.zip'); params.put('hash' , 'b55552ff426d7e3d4885465d27ea0062');

StringBuilder postData = new StringBuilder(); for (Map.Entry<String, String> param : params.entrySet()) { if (postData.length() != 0) postData.append('&'); postData.append(param.getKey()); postData.append('='); postData.append(param.getValue()); } HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "multipart/form-data"); conn.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(postData.toString()); writer.flush();

BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; StringBuilder sb = new StringBuilder(); while((line = reader.readLine()) != null){ sb.append(line); } System.out.println(sb.toString()); writer.close(); reader.close(); } catch(Exception ex){ ex.printStackTrace(); } }

}

Page 37 of 127

Sample Response

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <responseCode>0</responseCode> <responseMessage>Operation successful</responseMessage> <requestReference>042cbef76a6dad632d25</requestReference></mwResponse>

Sample 'notifyURL' Response if the merchant request is approved

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <requestReference>c4538fd54dbdad7acd14</requestReference> <status>approved</status></mwResponse>

Sample 'notifyURL' Response if the merchant request is declined

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <requestReference>c4538fd54dbdad7acd14</requestReference> <status>declined</status></mwResponse>

Sample 'notifyURL' Response when the merchant account is created

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <requestReference>c4538fd54dbdad7acd14</requestReference> <status>created</status> <merchantUUID>5b0e0431ea239</merchantUUID> <apiKey>f3wj1ids</apiKey> <apiPassphrase>o3xnxqgu</apiPassphrase></mwResponse>

addMerchantaddMerchant

The addMerchant method is the method used to perform a merchant creation request. The addMerchant method is the method used to perform a merchant creation request.

If you supply a notifyURL (see below) with your request, you will receive a notification message in real-time when the creation requestIf you supply a notifyURL (see below) with your request, you will receive a notification message in real-time when the creation request

has completed.has completed.

Request-ParametersRequest-Parameters

API MethodAPI Method

Page 38 of 127

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: addMerchantaddMerchant

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

partnerUUIDpartnerUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Merchant Company ParametersMerchant Company Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantCompanyLegalNamemerchantCompanyLegalName RequiredRequired The legal name of the company. The legal name of the company. Example:Example: Company ABC PTY LTDCompany ABC PTY LTD

merchantCompanyTradingNamemerchantCompanyTradingName RequiredRequired The trading name of the company. This may be the same as the legal name. The trading name of the company. This may be the same as the legal name. Example:Example: ABC COMPANYABC COMPANY

merchantCompanyRegNumbermerchantCompanyRegNumber RequiredRequired The registration number of the company, eg. ABN, NZBN, EIN etc. The registration number of the company, eg. ABN, NZBN, EIN etc. Example:Example: 123456123456 Valid length:Valid length: Up to 64 characters. Up to 64 characters.

merchantIndustrymerchantIndustry RequiredRequired The industry that best defines the merchant's operations. Must be one of the followings: The industry that best defines the merchant's operations. Must be one of the followings: 'Professional Services','Professional Services','Mail/Telephone Order','Mail/Telephone Order','Business Services','Business Services','Retail Store','Retail Store','Airline Services','Airline Services','Entertainment','Entertainment','Automobiles','Automobiles','Clothing','Clothing','Contracted Services','Contracted Services','Government','Government','Hotel','Hotel','Personal Services','Personal Services','Repair Services','Repair Services','Transportation','Transportation','Utilities','Utilities','Wholesale','Wholesale','Other' 'Other' Example:Example: ClothingClothing Valid length:Valid length: Up to 75 characters. Up to 75 characters.

merchantWebsitemerchantWebsite RequiredRequired The website of the company. Starts with http:// or https:// The website of the company. Starts with http:// or https:// Example:Example: https://apple.com.auhttps://apple.com.au Valid length:Valid length: Up to 75 characters. Up to 75 characters.

Merchant Address ParametersMerchant Address Parameters

Page 39 of 127

ParameterParameter RequiredRequired DescriptionDescription

merchantCountrymerchantCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

merchantStatemerchantState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

merchantCitymerchantCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

merchantStreetmerchantStreet RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

merchantPostcodemerchantPostcode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

merchantTimezonemerchantTimezone RequiredRequired Must be a valid timezone. Must be a valid timezone. Example:Example: Australia/BrisbaneAustralia/Brisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

Merchant Contact ParametersMerchant Contact Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantContactNamemerchantContactName RequiredRequired The main contact name of this merchant. This field can only contain alphanumeric characters, asThe main contact name of this merchant. This field can only contain alphanumeric characters, aswell as the full stop, comma, apostrophe, ampersand, space and hyphen characters. well as the full stop, comma, apostrophe, ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

merchantContactEmailmerchantContactEmail RequiredRequired The main contact email of this merchant. The main contact email of this merchant. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

merchantContactPhonemerchantContactPhone RequiredRequired The main contact phone number of this merchant. The main contact phone number of this merchant. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

merchantContactMobilemerchantContactMobile RequiredRequired The main contact mobile number of this merchant. The main contact mobile number of this merchant. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

merchantBillingContactNamemerchantBillingContactName RequiredRequired The billing contact name of this merchant. This field can only contain alphanumeric characters,The billing contact name of this merchant. This field can only contain alphanumeric characters,as well as the full stop, comma, apostrophe, ampersand, space and hyphen characters. as well as the full stop, comma, apostrophe, ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

merchantBillingContactEmailmerchantBillingContactEmail RequiredRequired The billing contact email of this merchant. The billing contact email of this merchant. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

settlement Parameterssettlement Parameters

Page 40 of 127

ParameterParameter RequiredRequired DescriptionDescription

ddSettlementAccountNameddSettlementAccountName NotNotRequiredRequired

The merchant's settlement account name for direct debit (bank account) transactions. This fieldThe merchant's settlement account name for direct debit (bank account) transactions. This fieldis required if you specify either ddSettlementAccountBSB or ddSettlementAccountNumber. is required if you specify either ddSettlementAccountBSB or ddSettlementAccountNumber. Example:Example: Test NameTest Name Valid length:Valid length: Up to 75 characters Up to 75 characters

ddSettlementAccountBSBddSettlementAccountBSB NotNotRequiredRequired

The merchant's settlement account BSB for direct debit (bank account) transactions. This field isThe merchant's settlement account BSB for direct debit (bank account) transactions. This field isrequired if you specify either ddSettlementAccountName or ddSettlementAccountNumber. required if you specify either ddSettlementAccountName or ddSettlementAccountNumber. Example:Example: 123456123456 Valid length:Valid length: Up to 75 characters Up to 75 characters

ddSettlementAccountNumberddSettlementAccountNumber NotNotRequiredRequired

The merchant's settlement account number for direct debit (bank account) transactions. ThisThe merchant's settlement account number for direct debit (bank account) transactions. Thisfield is required if you specify either ddSettlementAccountBSB or ddSettlementAccountName. field is required if you specify either ddSettlementAccountBSB or ddSettlementAccountName. Example:Example: 0012345600123456 Valid length:Valid length: Up to 75 characters Up to 75 characters

ccSettlementAccountNameccSettlementAccountName NotNotRequiredRequired

The merchant's settlement account name for credit card transactions. This field is required if youThe merchant's settlement account name for credit card transactions. This field is required if youspecify either ccSettlementAccountBSB or ccSettlementAccountNumber. specify either ccSettlementAccountBSB or ccSettlementAccountNumber. Example:Example: Test NameTest Name Valid length:Valid length: Up to 75 characters Up to 75 characters

ccSettlementAccountBSBccSettlementAccountBSB NotNotRequiredRequired

The merchant's settlement account BSB for credit card transactions. This field is required if youThe merchant's settlement account BSB for credit card transactions. This field is required if youspecify either ccSettlementAccountName or ccSettlementAccountNumber. specify either ccSettlementAccountName or ccSettlementAccountNumber. Example:Example: 123456123456 Valid length:Valid length: Up to 75 characters Up to 75 characters

ccSettlementAccountNumberccSettlementAccountNumber NotNotRequiredRequired

The merchant's settlement account number for credit card transactions. This field is required ifThe merchant's settlement account number for credit card transactions. This field is required ifyou specify either ccSettlementAccountBSB or ccSettlementAccountName. you specify either ccSettlementAccountBSB or ccSettlementAccountName. Example:Example: 512345678912346512345678912346 Valid length:Valid length: Up to 75 characters Up to 75 characters

cardAcceptorNamecardAcceptorName NotNotRequiredRequired

Freeform field. The name that will appear on the card holder's statement. Freeform field. The name that will appear on the card holder's statement. Example:Example: NIKE ACCESSORIESNIKE ACCESSORIES Valid length:Valid length: Up to 19 characters Up to 19 characters

attachment Parametersattachment Parameters

ParameterParameter RequiredRequired DescriptionDescription

fileAttachmentsfileAttachments Not RequiredNot Required Due diligence documentation. This must be a compressed .zip archive and must not exceed 30MB. Due diligence documentation. This must be a compressed .zip archive and must not exceed 30MB.

Test ParametersTest Parameters

ParameterParameter RequiredRequired DescriptionDescription

statusstatus NotNotRequiredRequired

The request will be automatically approved or declined based on this parameter. This must be either approved orThe request will be automatically approved or declined based on this parameter. This must be either approved ordeclined if present. This parameter will only work in the sandbox environment. declined if present. This parameter will only work in the sandbox environment. Example:Example: approvedapproved

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Partner Type HashPartner Type Hash

Page 41 of 127

Sample Request

curl -X POST \ -d method="checkMerchant" \ -d partnerUUID="5265f8eed6a19" \ -d apiKey="ksmnwxab" \ -d requestReference="abdfd1231150fda" -d hash="b55552ff426d7e3d4885465d27ea0062" https://api.merchantwarrior.com/partner/

require 'net/http'require 'uri'

uri = URI.parse("https://api.merchantwarrior.com/partner/")request = Net::HTTP::Post.new(uri)request.set_form_data( 'method' => 'checkMerchant', 'partnerUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'requestReference' => 'abdfd1231150fda', 'hash' => 'b55552ff426d7e3d4885465d27ea0062')

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request)end

puts response.body

import requests

data = { 'method' : 'checkMerchant', 'partnerUUID' : '5265f8eed6a19', 'apiKey' : 'ksmnwxab', 'requestReference' : 'abdfd1231150fda', 'hash' : 'b55552ff426d7e3d4885465d27ea0062'}

r = requests.post('https://api.merchantwarrior.com/partner/', data = data)

print(r.text)

Page 42 of 127

<?php// Setup the POST urldefine('MW_API_ENDPOINT', 'https://api.merchantwarrior.com/partner/');

// Setup POST data$postData = array ( 'method' => 'checkMerchant', 'partnerUUID' => '5265f8eed6a19', 'apiKey' => 'ksmnwxab', 'requestReference' => 'abdfd1231150fda', 'hash' => 'b55552ff426d7e3d4885465d27ea0062');

// Setup CURL defaults$curl = curl_init();

// Setup CURL params for this requestcurl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_URL, MW_API_ENDPOINT);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData, '', '&'));

// Run CURL$response = curl_exec($curl);$error = curl_error($curl);

// Check for CURL errorsif (isset($error) && strlen($error)) { throw new Exception("CURL Error: {$error}");}

// Parse the XML$xml = simplexml_load_string($response);

// Convert the result from a SimpleXMLObject into an array$xml = (array)$xml;

// Validate the response - the only successful code is 0$status = ((int)$xml['responseCode'] === 0) ? true : false;

exit(var_dump($xml));?>

using System;using System.Collections.Generic;using System.Linq;

public class Program { public static void Main(string[] args) { using(var client = new System.Net.WebClient()) { byte[] response = client.UploadValues("https://api.merchantwarrior.com/partner/", new System.Collections.Specialized.NameValueCollection() { {'method' , 'checkMerchant'}, {'partnerUUID' , '5265f8eed6a19'}, {'apiKey' , 'ksmnwxab'}, {'requestReference' , 'abdfd1231150fda'}, {'hash' , 'b55552ff426d7e3d4885465d27ea0062'}, }); String result = System.Text.Encoding.Default.GetString(response); Console.WriteLine(result); } }}

Page 43 of 127

Imports SystemImports System.Collections.GenericImports System.Linq

Public Module Program Public Sub Main(args As String()) Using client = New System.Net.WebClient() Dim response As Byte() = client.UploadValues( "https://api.merchantwarrior.com/partner/", New System.Collections.Specialized.NameValueCollection() From { _ {'method' , 'checkMerchant'}, _ {'partnerUUID' , '5265f8eed6a19'}, _ {'apiKey' , 'ksmnwxab'}, _ {'requestReference' , 'abdfd1231150fda'}, _ {'hash' , 'b55552ff426d7e3d4885465d27ea0062'}, _ }) Dim result As [String] = System.Text.Encoding.[Default].GetString(response) Console.WriteLine(result) End Using End SubEnd Module

Page 44 of 127

import java.io.*;import java.net.*;import java.util.*;

public class Program{

public static void main(String[] args) { try{ URL url = new URL("https://api.merchantwarrior.com/partner/"); Map<String, String> params = new LinkedHashMap<>();

params.put('method' , 'checkMerchant'); params.put('partnerUUID' , '5265f8eed6a19'); params.put('apiKey' , 'ksmnwxab'); params.put('requestReference' , 'abdfd1231150fda'); params.put('hash' , 'b55552ff426d7e3d4885465d27ea0062');

StringBuilder postData = new StringBuilder(); for (Map.Entry<String, String> param : params.entrySet()) { if (postData.length() != 0) postData.append('&'); postData.append(param.getKey()); postData.append('='); postData.append(param.getValue()); } HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "multipart/form-data"); conn.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(postData.toString()); writer.flush();

BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; StringBuilder sb = new StringBuilder(); while((line = reader.readLine()) != null){ sb.append(line); } System.out.println(sb.toString()); writer.close(); reader.close(); } catch(Exception ex){ ex.printStackTrace(); } }

}

Sample Response

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <responseCode>0</responseCode> <responseMessage>Merchant Created</responseMessage> <status>created</status> <merchantUUID>5b0e0431ea239</merchantUUID> <apiKey>f3wj1ids</apiKey> <apiPassphrase>o3xnxqgu</apiPassphrase></mwResponse>

Page 45 of 127

Sample 'notifyURL' Response if merchant gets created

<?xml version="1.0" encoding="UTF-8"?><mwResponse> <requestReference>c4538fd54dbdad7acd14</requestReference> <status>created</status> <merchantUUID>5b0e0431ea239</merchantUUID> <apiKey>f3wj1ids</apiKey> <apiPassphrase>o3xnxqgu</apiPassphrase></mwResponse>

checkMerchantcheckMerchant

The checkMerchant method is the method used to check the status of a merchant creation request.The checkMerchant method is the method used to check the status of a merchant creation request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: checkMerchantcheckMerchant

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

partnerUUIDpartnerUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Merchant Company ParametersMerchant Company Parameters

ParameterParameter RequiredRequired DescriptionDescription

requestReferencerequestReference RequiredRequired This parameter is returned by This parameter is returned by . . Example:Example: abdfd1231150fdaabdfd1231150fda

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

addMerchantaddMerchant

Partner Query HashPartner Query Hash

Page 46 of 127

MWPAY.LinkMWPAY.Link

The following sub-sections will outline information in relation to the The following sub-sections will outline information in relation to the Merchant Warrior PAY.Link serviceMerchant Warrior PAY.Link service..

IntroductionIntroduction

The Merchant Warrior MWPAY.Link service enables you to generate a unique payment link that when accessed will allow yourThe Merchant Warrior MWPAY.Link service enables you to generate a unique payment link that when accessed will allow your

customer to complete a payment via a secure customer to complete a payment via a secure ..

Each MWPAY.Link that is generated will have a unique code attached to it. You can also link your own internal Reference ID to aEach MWPAY.Link that is generated will have a unique code attached to it. You can also link your own internal Reference ID to a

unique code in order to reconcile transactions that take place via a unique payment link. The MWPAY.Link service can also notify yourunique code in order to reconcile transactions that take place via a unique payment link. The MWPAY.Link service can also notify your

systems in real-time after a customer has completed a payment.systems in real-time after a customer has completed a payment.

MWPAY.Link URLs are useful for scenarios such as sending bills via email and/or SMS, e-invoices, donations etc.MWPAY.Link URLs are useful for scenarios such as sending bills via email and/or SMS, e-invoices, donations etc.

You will need to obtain a Merchant UUID, API Key and API passphrase in order to use this feature. These details will be issued to youYou will need to obtain a Merchant UUID, API Key and API passphrase in order to use this feature. These details will be issued to you

when you create your MW account.when you create your MW account.

Request FormatRequest Format

API requests are submitted to this service using API requests are submitted to this service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

Generate PayLinkGenerate PayLink

The request paramaters below detail how to generate a unique payment link. Each payment link will have a uniqueCode associatedThe request paramaters below detail how to generate a unique payment link. Each payment link will have a uniqueCode associated

with it.with it.

Request-ParametersRequest-Parameters

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

Hosted Payment PageHosted Payment Page

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

Page 47 of 127

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal places orThe amount must be formatted to have two decimal places. Any amounts without two decimal places oramounts less than one cent will be rejected. amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. PleaseOne of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. Pleasecheck with MW before attempting to process transactions in any currency other than AUD. This field ischeck with MW before attempting to process transactions in any currency other than AUD. This field iscase insensitive. case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field's primaryA product (or sale) id or description. We recommend using an order/product id. This field's primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

referenceTextreferenceText NotNotRequiredRequired

This parameter is used to describe the order/product ID or reference. It will be placed next to theThis parameter is used to describe the order/product ID or reference. It will be placed next to thetransactionProduct mentioned above in the payment page. transactionProduct mentioned above in the payment page. Example:Example: Booking #Booking # Valid length:Valid length: Up to 50 characters Up to 50 characters

linkReferenceIDlinkReferenceID NotNotRequiredRequired

This is a merchant's unique reference ID that can be used to match a uniqueCode with a merchant'sThis is a merchant's unique reference ID that can be used to match a uniqueCode with a merchant'sinternal reference ID. internal reference ID. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

expiryexpiry NotNotRequiredRequired

The expiration of the unique payment link. This paramater should be formatted as a DateTime (yyyy-mm-The expiration of the unique payment link. This paramater should be formatted as a DateTime (yyyy-mm-dd hh:mm:ss). By default the unique payment link will expire after 7 days. dd hh:mm:ss). By default the unique payment link will expire after 7 days. Example:Example: 2017-05-01 17:45:122017-05-01 17:45:12

sendEmailsendEmail NotNotRequiredRequired

This value is a This value is a denoting whether to automatically send an email to the customer with the unique denoting whether to automatically send an email to the customer with the uniquepayment link payment link Example:Example: 11

reminderFrequencyreminderFrequency NotNotRequiredRequired

How often to send a reminder email to the customer if the unique payment link is unpaid. ReminderHow often to send a reminder email to the customer if the unique payment link is unpaid. Reminderemails will only be sent if the sendEmail parameter was set to true. If this value is not set, or 0, noemails will only be sent if the sendEmail parameter was set to true. If this value is not set, or 0, noreminder emails will be sent reminder emails will be sent Example:Example: 77

Customer ParametersCustomer Parameters

booleanboolean

Page 48 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName NotNotRequiredRequired

This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry NotNotRequiredRequired

Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState NotNotRequiredRequired

Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity NotNotRequiredRequired

Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress NotNotRequiredRequired

Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode NotNotRequiredRequired

This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Must be valid if present. Sending this optional parameter is highly recommended. Must be valid if present. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

Redirect and Notification ParametersRedirect and Notification Parameters

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL** RequiredRequired The customer will be redirected to this URL upon completion of the transaction. This parameter can also beThe customer will be redirected to this URL upon completion of the transaction. This parameter can also behardcoded via the merchant administration interface. hardcoded via the merchant administration interface. Example:Example:

notifyURLnotifyURL** RequiredRequired Asynchronous POST notifications will be sent to this URL. This parameter can also be hardcoded via the merchantAsynchronous POST notifications will be sent to this URL. This parameter can also be hardcoded via the merchantadministration interface. administration interface. Example:Example:

urlHashurlHash** RequiredRequired The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. It mustThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. It mustbe specified if you specify either returnURL or notifyURL. be specified if you specify either returnURL or notifyURL. See See for information on how to construct for information on how to constructthe hash correctly. the hash correctly. Example:Example: 511999e54b9ad51ce4c28d7f0550ac81511999e54b9ad51ce4c28d7f0550ac81 Valid Length:Valid Length: 32 characters 32 characters

The Redirect and Notification Parameters above, are only required in your API request if you have not specifically set the MWPAY.Link The Redirect and Notification Parameters above, are only required in your API request if you have not specifically set the MWPAY.LinkReturn URL and Notify URL settings in the merchant administration interface. If you plan on having different returnURL's and notifyURL's forReturn URL and Notify URL settings in the merchant administration interface. If you plan on having different returnURL's and notifyURL's fordifferent links then we recommend leaving the MWPAY.Link Return URL and Notify URL empty in the merchant administration interface, anddifferent links then we recommend leaving the MWPAY.Link Return URL and Notify URL empty in the merchant administration interface, andsetting them here via your API request.setting them here via your API request.

Custom ParametersCustom Parameters

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Web URL HashWeb URL Hash

Page 49 of 127

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Freeform field. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Freeform field. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Freeform field. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Production API Endpoint

https://api.merchantwarrior.com/token/

Sandbox API Endpoint

https://base.merchantwarrior.com/token/

Transaction Type HashTransaction Type Hash

Page 50 of 127

Token PaymentsToken Payments

The following sub-sections will outline the various API methods present in the The following sub-sections will outline the various API methods present in the Merchant Warrior Token PaymentsMerchant Warrior Token Payments service. service.

IntroductionIntroduction

Token Payments allows merchants to perform subsequent transactions for a customer without the customer sending their cardholderToken Payments allows merchants to perform subsequent transactions for a customer without the customer sending their cardholder

data to the MW platform more than once. Implementing this feature can reduce data to the MW platform more than once. Implementing this feature can reduce scope significanly as merchants are not scope significanly as merchants are not

required to store customer cardholder (required to store customer cardholder ( ) data.) data.

Global VaultGlobal Vault

The Merchant Warrior Global Vault stores tokens in a globally accessible Vault. This feature enables merchants to gain access toThe Merchant Warrior Global Vault stores tokens in a globally accessible Vault. This feature enables merchants to gain access to

customer tokens without requiring the customer (if they have registered cards in the Global Vault) to enter their credit card details intocustomer tokens without requiring the customer (if they have registered cards in the Global Vault) to enter their credit card details into

the merchant’s website. The Merchant Warrior Global Vault links a customer’s email address and cell number to their credit card(s).the merchant’s website. The Merchant Warrior Global Vault links a customer’s email address and cell number to their credit card(s).

A merchant can request access to a customer’s token(s) by providing their email address to the Merchant Warrior Global Vault service.A merchant can request access to a customer’s token(s) by providing their email address to the Merchant Warrior Global Vault service.

The customer’s token(s) are only provided to the merchant after the customer grants access to the merchant by completing a The customer’s token(s) are only provided to the merchant after the customer grants access to the merchant by completing a step step

via email or SMS technologies.via email or SMS technologies.

Key ManagementKey Management

As the Token Payments solution enables merchants to store encryption keys the following key management principles must be takenAs the Token Payments solution enables merchants to store encryption keys the following key management principles must be taken

into consideration: into consideration:

• Strong encryption keys should be generated (pseudo-random data of high entropy) • Strong encryption keys should be generated (pseudo-random data of high entropy)

• Encryption keys must only be transmitted via a Secure Socket Layer (SSL) encrypted tunnel • Encryption keys must only be transmitted via a Secure Socket Layer (SSL) encrypted tunnel

• Encryption keys must be stored securely, only accessible by necessary staff and applications • Encryption keys must be stored securely, only accessible by necessary staff and applications

• Staff with access to encryption keys should acknowledge (in writing or electronically) that they understand and accept their key-• Staff with access to encryption keys should acknowledge (in writing or electronically) that they understand and accept their key-

custodian responsibilitiescustodian responsibilities

Further information regarding key management procedures is made available by NIST - Further information regarding key management procedures is made available by NIST -

Request FormatRequest Format

API requests are submitted to the Token Payments service using API requests are submitted to the Token Payments service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

Available MethodsAvailable Methods

The Token Payments service consists of the following methods: The Token Payments service consists of the following methods:

• • : Adds a card to the Local or Global Vault : Adds a card to the Local or Global Vault

• • : Removes a card from the Local or Global Vault : Removes a card from the Local or Global Vault

• • : Returns information on the stored card (name, expiry, etc) : Returns information on the stored card (name, expiry, etc)

• • : Changes the expiry date on an existing card stored in the Local or Global Vault : Changes the expiry date on an existing card stored in the Local or Global Vault

• • : Checks the Global Vault for any changes that may have occurred for a registered email in the Global Vault (eg.: Checks the Global Vault for any changes that may have occurred for a registered email in the Global Vault (eg.

addition of a new card or removal of an old card) addition of a new card or removal of an old card)

• • : Checks the email registered in the Global Vault and requests a verification code to be sent to the customer either to: Checks the email registered in the Global Vault and requests a verification code to be sent to the customer either to

retrieve or remove card(s) retrieve or remove card(s)

PCI DSSPCI DSS

PANPAN

2FA2FA

http://csrc.nist.gov/groups/ST/key_mgmt/http://csrc.nist.gov/groups/ST/key_mgmt/

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

addCardaddCard

removeCardremoveCard

cardInfocardInfo

changeExpirychangeExpiry

checkCardChangecheckCardChange

checkEmailcheckEmail

Page 51 of 127

• • : Checks the mobile contact registered for an email in the Global Vault and requests a verification code to be sent to the: Checks the mobile contact registered for an email in the Global Vault and requests a verification code to be sent to the

customer for updateContact method customer for updateContact method

• • : Retrieves card(s) registered to an email from the Global Vault : Retrieves card(s) registered to an email from the Global Vault

• • : Updates customer’s mobile contact in the Global Vault : Updates customer’s mobile contact in the Global Vault

• • : Performs a purchase request using a token added via the addCard method : Performs a purchase request using a token added via the addCard method

• • : Performs a pre-authorization request using a token added via the addCard method: Performs a pre-authorization request using a token added via the addCard method

addCardaddCard

The addCard method is used to add a new card to the MW Vault.The addCard method is used to add a new card to the MW Vault.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: addCardaddCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Cardholder DataCardholder Data

ParameterParameter RequiredRequired DescriptionDescription

cardNamecardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumeric characters,This must contain at the very least a space and no less than two characters. Only alphanumeric characters,hyphens, spaces and full stops are allowed. hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

cardNumbercardNumber RequiredRequired Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

cardExpiryMonthcardExpiryMonth RequiredRequired This must be MM format. The month must be zero padded if it is less than 10. This must be MM format. The month must be zero padded if it is less than 10. Example:Example: 0505 Valid length:Valid length: 2 digits 2 digits

cardExpiryYearcardExpiryYear RequiredRequired This must be YY format. This must be YY format. Example:Example: 1313 Valid length:Valid length: 2 digits 2 digits

Global Vault ParametersGlobal Vault Parameters

checkContactcheckContact

retrieveCardretrieveCard

updateContactupdateContact

processCardprocessCard

processAuthprocessAuth

Page 52 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardGlobalcardGlobal** Required/ Not RequiredRequired/ Not Required This must be in a This must be in a format. format. Example:Example: 11

cardEmailcardEmail** Required/ Not RequiredRequired/ Not Required This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact** Required/ Not RequiredRequired/ Not Required This must be in a valid Australian or International mobile number format. This must be in a valid Australian or International mobile number format. Example:Example: 04862929920486292992 or or +614920202820+614920202820

The Global Vault Parameters (cardGlobal, cardEmail, cardContact) are required when adding a customer card to the Global Vault. If the The Global Vault Parameters (cardGlobal, cardEmail, cardContact) are required when adding a customer card to the Global Vault. If thecustomer card is customer card is notnot being added to the Global Vault the Global Vault Parameters (cardGlobal, cardEmail, cardContact) are not required. being added to the Global Vault the Global Vault Parameters (cardGlobal, cardEmail, cardContact) are not required.

removeCardremoveCard

The removeCard method is the method used to remove a card from the MWV once it has been added.The removeCard method is the method used to remove a card from the MWV once it has been added.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: removeCardremoveCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Cardholder DataCardholder Data

ParameterParameter RequiredRequired DescriptionDescription

cardIDcardID RequiredRequired A unique alphanumeric string returned by A unique alphanumeric string returned by , used to identify a specific card. , used to identify a specific card. Example:Example: NUFM56937091NUFM56937091

cardKeycardKey NotNotRequiredRequired

A string used as an encryption/decryption key. This should only be used if you do NOT want Merchant WarriorA string used as an encryption/decryption key. This should only be used if you do NOT want Merchant Warriorhandling your key storage. This should be unique on a per-card basis. It’s used to encrypt the card when we storehandling your key storage. This should be unique on a per-card basis. It’s used to encrypt the card when we storeit. Every time we receive a process card request, the correct cardkey must also be provided – which is known onlyit. Every time we receive a process card request, the correct cardkey must also be provided – which is known onlyto you. to you. Example:Example: a84JI2cA12ziZ3Fxa84JI2cA12ziZ3Fx Valid length:Valid length: 16 characters 16 characters

Global Vault ParametersGlobal Vault Parameters

booleanboolean

addCardaddCard

Page 53 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardGlobalcardGlobal** Required/ NotRequired/ NotRequiredRequired

This must be in a This must be in a format. format. Example:Example: 11

cardEmailcardEmail** Required/ NotRequired/ NotRequiredRequired

This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

codecode** Required/ NotRequired/ NotRequiredRequired

The value of this parameter is sent by Merchant Warrior directly to the customer either via Email orThe value of this parameter is sent by Merchant Warrior directly to the customer either via Email orSMS. SMS. Example:Example: 1a3b5c1a3b5c Valid Length:Valid Length: 6 characters 6 characters

The Global Vault Parameters (cardGlobal, cardEmail, code) are required when removing a customer card from the Global Vault. If the The Global Vault Parameters (cardGlobal, cardEmail, code) are required when removing a customer card from the Global Vault. If thecustomer card is customer card is notnot being removed from the Global Vault the Global Vault Parameters (cardGlobal, cardEmail, code) are not required. being removed from the Global Vault the Global Vault Parameters (cardGlobal, cardEmail, code) are not required.

cardInfocardInfo

The cardInfo method is used to perform a query of an existing card. This method will return the information added via The cardInfo method is used to perform a query of an existing card. This method will return the information added via with the with the

credit card number (credit card number ( ) truncated.) truncated.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: cardInfocardInfo

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Cardholder DataCardholder Data

ParameterParameter RequiredRequired DescriptionDescription

cardIDcardID RequiredRequired A unique alphanumeric string returned by A unique alphanumeric string returned by , used to identify a specific card. , used to identify a specific card. Example:Example: NUFM56937091NUFM56937091

cardKeycardKey NotNotRequiredRequired

A string used as an encryption/decryption key. This should only be used if you do NOT want Merchant WarriorA string used as an encryption/decryption key. This should only be used if you do NOT want Merchant Warriorhandling your key storage. This should be unique on a per-card basis. It’s used to encrypt the card when we storehandling your key storage. This should be unique on a per-card basis. It’s used to encrypt the card when we storeit. Every time we receive a process card request, the correct cardkey must also be provided – which is known onlyit. Every time we receive a process card request, the correct cardkey must also be provided – which is known onlyby you. by you. Example:Example: a84JI2cA12ziZ3Fxa84JI2cA12ziZ3Fx Valid length:Valid length: 16 characters 16 characters

booleanboolean

addCardaddCard

PANPAN

addCardaddCard

Page 54 of 127

changeExpirychangeExpiry

The changeExpiry method is used to modify a card’s expiry after it has been added to the MW Vault.The changeExpiry method is used to modify a card’s expiry after it has been added to the MW Vault.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: changeExpirychangeExpiry

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Cardholder DataCardholder Data

ParameterParameter RequiredRequired DescriptionDescription

cardIDcardID RequiredRequired A unique alphanumeric string returned by addCard, used to identify a specific card. A unique alphanumeric string returned by addCard, used to identify a specific card. Example:Example: NUFM56937091NUFM56937091

cardKeycardKey NotNotRequiredRequired

A string used as an encryption/decryption key. This should only be used if you do NOT want MerchantA string used as an encryption/decryption key. This should only be used if you do NOT want MerchantWarrior handling your key storage. This should be unique on a per-card basis. It’s used to encrypt the cardWarrior handling your key storage. This should be unique on a per-card basis. It’s used to encrypt the cardwhen we store it. Every time we receive a process card request, the correct cardkey must also be provided –when we store it. Every time we receive a process card request, the correct cardkey must also be provided –which is known only by you. which is known only by you. Example:Example: a84JI2cA12ziZ3Fxa84JI2cA12ziZ3Fx Valid length:Valid length: 16 characters 16 characters

cardExpiryMonthcardExpiryMonth RequiredRequired This must be MM format. The month must be zero padded if it is less than 10. This must be MM format. The month must be zero padded if it is less than 10. Example:Example: 0505 Valid length:Valid length: 2 digits 2 digits

cardExpiryYearcardExpiryYear RequiredRequired This must be YY format. This must be YY format. Example:Example: 1313 Valid length:Valid length: 2 digits 2 digits

checkCardChangecheckCardChange

The checkCardChange method is used to detect if there have been any changes to a customer’s details in the Global Vault and can actThe checkCardChange method is used to detect if there have been any changes to a customer’s details in the Global Vault and can act

as an indicator as to whether the as an indicator as to whether the should be called. should be called.

Request-ParametersRequest-Parameters

API MethodAPI Method

checkEmail methodcheckEmail method

Page 55 of 127

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: checkCardChangecheckCardChange

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Global Vault ParametersGlobal Vault Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardEmailcardEmail RequiredRequired This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardIDcardID RequiredRequired This must be in alphanumeric format and should list all the cardID(s) that you have on file for the customer’s emailThis must be in alphanumeric format and should list all the cardID(s) that you have on file for the customer’s emailaddress. If multiple cardIDs are present they must be comma separated. All spaces should be removed from thisaddress. If multiple cardIDs are present they must be comma separated. All spaces should be removed from thisfield prior to submission. field prior to submission. Example:Example: NUFM56937091NUFM56937091, , ABCD65321983ABCD65321983

checkEmailcheckEmail

The checkEmail method is used for requesting a one-time verification code for the retrieval or removal of card(s) in the MW GlobalThe checkEmail method is used for requesting a one-time verification code for the retrieval or removal of card(s) in the MW Global

Vault.Vault.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: checkEmailcheckEmail

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Global Vault ParametersGlobal Vault Parameters

Page 56 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardEmailcardEmail RequiredRequired This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

authModeauthMode RequiredRequired This must be in integer format. Use 1 – Email Verification and 2 – SMS Verification. This must be in integer format. Use 1 – Email Verification and 2 – SMS Verification. Example:Example: 11

checkModecheckMode RequiredRequired This must be in integer format. Use 1 – retrieveCard method and 2 – removeCardmethod. This must be in integer format. Use 1 – retrieveCard method and 2 – removeCardmethod. Example:Example: 11

cardIDcardID Required/ NotRequired/ NotRequiredRequired

This must be in alphanumeric format. This field is only supplied when checkMode is set to 2 –This must be in alphanumeric format. This field is only supplied when checkMode is set to 2 –removeCard. removeCard. Example:Example: NUFM56937091NUFM56937091

checkContactcheckContact

The checkContact method is used for requesting a one-time verification code to update a customer’s mobile contact in the MW GlobalThe checkContact method is used for requesting a one-time verification code to update a customer’s mobile contact in the MW Global

Vault via the Vault via the ..

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: checkContactcheckContact

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Global Vault ParametersGlobal Vault Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardEmailcardEmail RequiredRequired This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact RequiredRequired This must be in a valid Australian or International mobile number format. The contact supplied must match theThis must be in a valid Australian or International mobile number format. The contact supplied must match thecontact in the Global Vault. contact in the Global Vault. Example:Example: 04862929920486292992 or or +614920202820+614920202820

retrieveCardretrieveCard

The retrieveCard method is used to retrieve card(s) registered to an email address in the MW Global Vault.The retrieveCard method is used to retrieve card(s) registered to an email address in the MW Global Vault.

updateContact methodupdateContact method

Page 57 of 127

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: retrieveCardretrieveCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Global Vault ParametersGlobal Vault Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardEmailcardEmail RequiredRequired This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

codecode RequiredRequired The value of this parameter is sent by Merchant Warrior directly to the customer either via email or SMS. The value of this parameter is sent by Merchant Warrior directly to the customer either via email or SMS. Example:Example: 1a3b5c1a3b5c Valid Length:Valid Length: 6 characters 6 characters

updateContactupdateContact

The updateContact method is used to update customer’s mobile contact in the MW Global Vault.The updateContact method is used to update customer’s mobile contact in the MW Global Vault.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: updateContactupdateContact

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Global Vault ParametersGlobal Vault Parameters

Page 58 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardEmailcardEmail RequiredRequired This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact RequiredRequired This must be in a valid Australian or International mobile number format. The contact supplied must match theThis must be in a valid Australian or International mobile number format. The contact supplied must match thecontact in the Global Vault. contact in the Global Vault. Example:Example: 04862929920486292992 or or +614920202820+614920202820

codecode RequiredRequired The value of this parameter is sent by Merchant Warrior directly to the customer either via email or SMS. The value of this parameter is sent by Merchant Warrior directly to the customer either via email or SMS. Example:Example: 1a3b5c1a3b5c Valid Length:Valid Length: 6 characters 6 characters

processCardprocessCard

The processCard method is used to perform a purchase transaction using a Token ID that exists in the MW Vault.The processCard method is used to perform a purchase transaction using a Token ID that exists in the MW Vault.

Request-ParametersRequest-Parameters

These paramaters are practically identical to the These paramaters are practically identical to the method. The major point of difference is that the card data method. The major point of difference is that the card data

fields are removed, and in their place the cardID, cardKey & cardKeyReplace parameters have been added.fields are removed, and in their place the cardID, cardKey & cardKeyReplace parameters have been added.

When this method is run, the value of cardKeyReplace will overwrite cardKey - When this method is run, the value of cardKeyReplace will overwrite cardKey - unlessunless a validation error occurs. In short, if the a validation error occurs. In short, if the

responseCode >= 0, overwrite cardKey in your database with the value you send for cardKeyReplace. Transactions that do not passresponseCode >= 0, overwrite cardKey in your database with the value you send for cardKeyReplace. Transactions that do not pass

pre-validation (responseCode < 0) will pre-validation (responseCode < 0) will notnot have their cardKey updated. have their cardKey updated.

It is important to note that supplying a cardID and cardKey are only required if you plan on handling key storage for your credit card It is important to note that supplying a cardID and cardKey are only required if you plan on handling key storage for your credit cardinformation. If no cardID or cardKey are supplied Merchant Warrior will handle the key storage for you.information. If no cardID or cardKey are supplied Merchant Warrior will handle the key storage for you.

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processCardprocessCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

Direct API processCardDirect API processCard

Page 59 of 127

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field's primaryA product (or sale) id or description. We recommend using an order/product id. This field's primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant's unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant's unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Recurring ParametersRecurring Parameters

ParameterParameter RequiredRequired DescriptionDescription

recurringFlagrecurringFlag Not RequiredNot Required This parameter is used to indicate if a transaction will be marked as recurring. Its value must be 0 or 1. This parameter is used to indicate if a transaction will be marked as recurring. Its value must be 0 or 1. Example:Example: 11

Customer ParametersCustomer Parameters

queryCardqueryCard

Page 60 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, aposprophe,This field can only contain alphanumeric characters, as well as the full stop, comma, aposprophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

Page 61 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardIDcardID RequiredRequired A unique alphanumeric string returned by A unique alphanumeric string returned by , used to identify a specific card. , used to identify a specific card. Example:Example: NUFM56937091NUFM56937091

cardKeycardKey NotNotRequiredRequired

A string used as an encryption/decryption key. A string used as an encryption/decryption key. This should only be used if you do NOT want MerchantThis should only be used if you do NOT want MerchantWarrior handling your key storage. This should be unique on a per-card basis. It's used to encrypt the cardWarrior handling your key storage. This should be unique on a per-card basis. It's used to encrypt the cardwhen we store it. Every time we receive a process card request, the correct cardkey must also be provided -when we store it. Every time we receive a process card request, the correct cardkey must also be provided -which is known only by you. which is known only by you. Example:Example: a84JI2cA12ziZ3Fxa84JI2cA12ziZ3Fx Valid Length:Valid Length: 16 characters 16 characters

cardKeyReplacecardKeyReplace NotNotRequiredRequired

This will replace cardKey for subsequent requests for the cardID if the transaction is run successfullyThis will replace cardKey for subsequent requests for the cardID if the transaction is run successfully(meaning accepted by Merchant Warrior, not necessarily approved by the bank). This cannot be the same(meaning accepted by Merchant Warrior, not necessarily approved by the bank). This cannot be the sameas the last 10 cardKey's used for the cardID, and it has to follow the same guidelines as cardkey (16as the last 10 cardKey's used for the cardID, and it has to follow the same guidelines as cardkey (16character alphanumeric string, etc). See the explanation under "character alphanumeric string, etc). See the explanation under "Request ParameterRequest Parameter" for more information. " for more information. Example:Example: mbnGHOq86sXTjQgdmbnGHOq86sXTjQgd Valid Length:Valid Length: 16 characters 16 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiated byThis is required by some Acquirers if the transaction is initiated bythe customer. Please contact Merchant Warrior for more information. the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

processAuthprocessAuth

The processAuth method is the method used to perform a The processAuth method is the method used to perform a transaction using an existing card (for capture request, transaction using an existing card (for capture request,

refer to the standard refer to the standard ). This method proxies the request through to the standard MWE API, and returns the). This method proxies the request through to the standard MWE API, and returns the

response directly – including any validation or provider errors. That means that all the validation logic is the same with both functions,response directly – including any validation or provider errors. That means that all the validation logic is the same with both functions,

although this of course also validates cardID, cardKey & cardKeyReplace.although this of course also validates cardID, cardKey & cardKeyReplace.

Method EndpointMethod Endpoint

This method’s endpoint is: https://<environment>.merchantwarrior.com/token/processAuthThis method’s endpoint is: https://<environment>.merchantwarrior.com/token/processAuth

addCardaddCard

Transaction Type HashTransaction Type Hash

pre-authorizationpre-authorization

processCapture API methodprocessCapture API method

Page 62 of 127

Request-ParametersRequest-Parameters

These paramaters are practically identical to the These paramaters are practically identical to the method. The major point of difference is that the card data method. The major point of difference is that the card data

fields are removed, and in their place the cardID, cardKey & cardKeyReplace parameters have been added.fields are removed, and in their place the cardID, cardKey & cardKeyReplace parameters have been added.

When this method is run, the value of cardKeyReplace will overwrite cardKey – When this method is run, the value of cardKeyReplace will overwrite cardKey – unlessunless a validation error occurs. In short, if the a validation error occurs. In short, if the

responseCode >= 0, overwrite cardKey in your database with the value you send for cardKeyReplace. Transactions that do not passresponseCode >= 0, overwrite cardKey in your database with the value you send for cardKeyReplace. Transactions that do not pass

pre-validation (responseCode < 0) will pre-validation (responseCode < 0) will notnot have their cardKey updated. have their cardKey updated.

It is important to note that supplying a cardID and cardKey are only required if you plan on handling key storage for your credit card It is important to note that supplying a cardID and cardKey are only required if you plan on handling key storage for your credit cardinformation. If no cardID or cardKey are supplied Merchant Warrior will handle the key storage for you.information. If no cardID or cardKey are supplied Merchant Warrior will handle the key storage for you.

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processAuthprocessAuth

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Customer ParametersCustomer Parameters

Direct API processAuthDirect API processAuth

queryCardqueryCard

Page 63 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, aposprophe,This field can only contain alphanumeric characters, as well as the full stop, comma, aposprophe,ampersand, space and hyphen characters.ampersand, space and hyphen characters.Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

Page 64 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardIDcardID RequiredRequired A unique alphanumeric string returned by A unique alphanumeric string returned by , used to identify a specific card. , used to identify a specific card. Example:Example: NUFM56937091NUFM56937091

cardKeycardKey NotNotRequiredRequired

A string used as an encryption/decryption key. A string used as an encryption/decryption key. This should only be used if you do NOT want MerchantThis should only be used if you do NOT want MerchantWarrior handling your key storage. This should be unique on a per-card basis. It’s used to encrypt the cardWarrior handling your key storage. This should be unique on a per-card basis. It’s used to encrypt the cardwhen we store it. Every time we receive a process card request, the correct cardkey must also be providedwhen we store it. Every time we receive a process card request, the correct cardkey must also be provided– which is known only by you. – which is known only by you. Example:Example: a84JI2cA12ziZ3Fxa84JI2cA12ziZ3Fx Valid Length:Valid Length: 16 characters 16 characters

cardKeyReplacecardKeyReplace NotNotRequiredRequired

This will replace cardKey for subsequent requests for the cardID if the transaction is run successfullyThis will replace cardKey for subsequent requests for the cardID if the transaction is run successfully(meaning accepted by Merchant Warrior, not necessarily approved by the bank). This cannot be the same(meaning accepted by Merchant Warrior, not necessarily approved by the bank). This cannot be the sameas the last 10 cardKey’s used for the cardID, and it has to follow the same guidelines as cardkey (16as the last 10 cardKey’s used for the cardID, and it has to follow the same guidelines as cardkey (16character alphanumeric string, etc). See the explanation under “character alphanumeric string, etc). See the explanation under “Request ParameterRequest Parameter” for more information. ” for more information. Example:Example: mbnGHOq86sXTjQgdmbnGHOq86sXTjQgd Valid Length:Valid Length: 16 characters 16 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiated byThis is required by some Acquirers if the transaction is initiated bythe customer. Please contact Merchant Warrior for more information. the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Production API Endpoint

https://secure.merchantwarrior.com/

Sandbox API Endpoint

https://securetest.merchantwarrior.com/

addCardaddCard

Transaction Type HashTransaction Type Hash

Page 65 of 127

Hosted PaymentsHosted Payments

The following sub-sections will outline the various API methods present in the The following sub-sections will outline the various API methods present in the Merchant Warrior Hosted PaymentsMerchant Warrior Hosted Payments service. service.

IntroductionIntroduction

The MW Hosted Payments solution allows merchants to process credit card transactions online via a secure hosted payment page.The MW Hosted Payments solution allows merchants to process credit card transactions online via a secure hosted payment page.

Merchants who do not wish to store, process or transmit credit card (Merchants who do not wish to store, process or transmit credit card ( ) in order to reduce their ) in order to reduce their scope will be able to scope will be able to

achieve this with this service.achieve this with this service.

Request FormatRequest Format

API requests are submitted to the Hosted Payments service using API requests are submitted to the Hosted Payments service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

Respone FormatRespone Format

The Hosted Payments service will return responses in The Hosted Payments service will return responses in format to a specified notifyURL via an Asynchronous format to a specified notifyURL via an Asynchronous ..

Response paramaters are also returned in the GET string of the specified returnURL via a Response paramaters are also returned in the GET string of the specified returnURL via a ..

Available MethodsAvailable Methods

The Hosted Payments service consists of the following methods: The Hosted Payments service consists of the following methods:

• • : Performs a purchase transaction on a customer's credit card : Performs a purchase transaction on a customer's credit card

• • : Initiates an electronic (paperless) direct debit authorization: Initiates an electronic (paperless) direct debit authorization

processCardprocessCardThe processCard method is the method used to perform a purchase request.The processCard method is the method used to perform a purchase request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. Currently, the only valid value for this parameter is ‘processCard’. This field is case sensitive. Currently, the only valid value for this parameter is ‘processCard’. Example:Example: processCardprocessCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

General Transaction ParametersGeneral Transaction Parameters

PANPAN PCI DSSPCI DSS

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

XMLXML HTTP POSTHTTP POST

302 redirect302 redirect

processCardprocessCard

processDDebitAuthprocessDDebitAuth

Page 66 of 127

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal places orThe amount must be formatted to have two decimal places. Any amounts without two decimal places oramounts less than one cent will be rejected. amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. PleaseOne of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant. Pleasecheck with MW before attempting to process transactions in any currency other than AUD. This field ischeck with MW before attempting to process transactions in any currency other than AUD. This field iscase insensitive. case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

Customer ParametersCustomer Parameters

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName Not RequiredNot Required This field can only contain alphanumeric characters, as well as the full stop and hyphen character. This field can only contain alphanumeric characters, as well as the full stop and hyphen character. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry Not RequiredNot Required Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState Not RequiredNot Required Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity Not RequiredNot Required Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress Not RequiredNot Required Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone Not RequiredNot Required Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail Not RequiredNot Required Must be valid if present. Sending this optional parameter is highly recommended. Must be valid if present. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

Redirect and Notification ParametersRedirect and Notification Parameters

Page 67 of 127

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

notifyURLnotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. Example:Example:

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. SeeThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.

Example:Example: 511999e54b9ad51ce4c28d7f0550ac81511999e54b9ad51ce4c28d7f0550ac81 Valid Length:Valid Length: 32 characters 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

logoURLlogoURL NotNotRequiredRequired

The URL to an image that will appear in the header of the hosted payment page. Image must be of PNG formatThe URL to an image that will appear in the header of the hosted payment page. Image must be of PNG formatand max dimensions of 90x90 pixels and a file size limit of 1500 kilobytes. If no logoURL is supplied a defaultand max dimensions of 90x90 pixels and a file size limit of 1500 kilobytes. If no logoURL is supplied a defaultbasket image is used.basket image is used.Example:Example: https://www.example.com/logo.pnghttps://www.example.com/logo.png

hostedIDhostedID NotNotRequiredRequired

The ID of the customized hosted payment page. This can be implemented if multiple hosted payment pages withThe ID of the customized hosted payment page. This can be implemented if multiple hosted payment pages withdifferent logos and banners is a requirement. different logos and banners is a requirement. Example:Example: 11

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Styling ParametersStyling Parameters

ParameterParameter RequiredRequired DescriptionDescription

stylestyle NotNotRequiredRequired

This parameter a stringified array that is used to set custom styling for the hosted payment page. This parameter a stringified array that is used to set custom styling for the hosted payment page. Example:Example: {"backgroundColor": "Cyan", "fontFamily": "Times New Roman"}{"backgroundColor": "Cyan", "fontFamily": "Times New Roman"}

acceptedCardTypesacceptedCardTypes NotNotRequiredRequired

This parameter is a comma delimited list of card types that will be acceptedThis parameter is a comma delimited list of card types that will be accepted(visa,mastercard,amex,diners,discover,jcb). If not set only Visa and Mastercard will be accepted. (visa,mastercard,amex,diners,discover,jcb). If not set only Visa and Mastercard will be accepted. Example:Example: Visa, Mastercard, DinersVisa, Mastercard, Diners

Style ParametersStyle Parameters

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Web URL HashWeb URL Hash

Transaction Type HashTransaction Type Hash

Page 68 of 127

This is a full list of the parameters that can be send in the style parameter with the hosted payment page request. If a parameter isn'tThis is a full list of the parameters that can be send in the style parameter with the hosted payment page request. If a parameter isn't

sent, the hosted payment page will use the default value listed.sent, the hosted payment page will use the default value listed.

ParameterParameter DefaultDefault DescriptionDescription

fieldHeightfieldHeight 40px40px The height of the payment page elements The height of the payment page elements Example:Example: fieldHeight: '60px'fieldHeight: '60px'

borderborder 1px solid1px solid#e6ebf1#e6ebf1

The border of the payment page elements The border of the payment page elements Example:Example: border: '2px dashed red'border: '2px dashed red'

borderBottomborderBottom borderborderParameterParameter

The bottom border of the payment page elements The bottom border of the payment page elements Example:Example: borderBottom: '4px dotted blue'borderBottom: '4px dotted blue'

borderColorborderColor borderborderParameterParameter

The border color of the payment page elements The border color of the payment page elements Example:Example: borderColor: '#b13af2'borderColor: '#b13af2'

borderLeftborderLeft borderborderParameterParameter

The left border of the payment page elements The left border of the payment page elements Example:Example: borderLeft: '4px dotted blue'borderLeft: '4px dotted blue'

borderRadiusborderRadius 4px4px The radius of the payment page element borders The radius of the payment page element borders Example:Example: borderRadius: '0px 30%'borderRadius: '0px 30%'

borderRightborderRight borderborderParameterParameter

The right border of the payment page elements The right border of the payment page elements Example:Example: borderRight: '4px dotted blue'borderRight: '4px dotted blue'

borderTopborderTop borderborderParameterParameter

The top border of the payment page elements The top border of the payment page elements Example:Example: borderTop: '4px dotted blue'borderTop: '4px dotted blue'

textColortextColor #32325d#32325d The text color of the payment page elements The text color of the payment page elements Example:Example: textColor: 'green'textColor: 'green'

backgroundColorbackgroundColor WhiteWhite The background color of the payment page elements The background color of the payment page elements Example:Example: backgroundColor: 'yellow'backgroundColor: 'yellow'

errorTextColorerrorTextColor redred The error text color of the payment page elements The error text color of the payment page elements Example:Example: errorTextColor: 'orange'errorTextColor: 'orange'

errorBackgroundColorerrorBackgroundColor #ffdddd#ffdddd The error background color of the payment page elements The error background color of the payment page elements Example:Example: errorBackgroundColor: 'none'errorBackgroundColor: 'none'

errorBorderColorerrorBorderColor redred The error border color of the payment page elements The error border color of the payment page elements Example:Example: errorBorderColor: 'black'errorBorderColor: 'black'

directiondirection ltrltr(Left to(Left toRight)Right)

The direction of the payment page element text The direction of the payment page element text Example:Example: direction: 'rlt'direction: 'rlt'

fontfont 18px18pxHelveticaHelveticaNeueNeue

The font of the payment page elements The font of the payment page elements Example:Example: font: '20px Times New Roman'font: '20px Times New Roman'

fontFamilyfontFamily fontfontParameterParameter

The font family of the payment page elements The font family of the payment page elements Example:Example: fontFamily: 'Arial'fontFamily: 'Arial'

fontSizefontSize fontfontParameterParameter

The font size of the payment page elements The font size of the payment page elements Example:Example: fontSize: '20px'fontSize: '20px'

fontSizeAdjustfontSizeAdjust fontfontParameterParameter

The font size adjust of the payment page elements The font size adjust of the payment page elements Example:Example: fontSizeAdjust: '0.58'fontSizeAdjust: '0.58'

fontStretchfontStretch fontfontParameterParameter

The font stretch of the payment page elements The font stretch of the payment page elements Example:Example: fontStretch: 'condensed'fontStretch: 'condensed'

fontStylefontStyle fontfontParameterParameter

The font style of the payment page elements The font style of the payment page elements Example:Example: fontStyle: 'italic'fontStyle: 'italic'

Page 69 of 127

fontVariantfontVariant normalnormal The font variant of the payment page elements The font variant of the payment page elements Example:Example: fontVariant: 'small-caps'fontVariant: 'small-caps'

fontVariantAlternatesfontVariantAlternates normalnormal The font alternate variant of the payment page elements The font alternate variant of the payment page elements Example:Example: fontVariantAlternates: 'historical-forms'fontVariantAlternates: 'historical-forms'

fontVariantCapsfontVariantCaps normalnormal The font caps variant of the payment page elements The font caps variant of the payment page elements Example:Example: fontVariantCaps: 'all-small-caps'fontVariantCaps: 'all-small-caps'

fontVariantEastAsianfontVariantEastAsian normalnormal The font East Asian variant of the payment page elements The font East Asian variant of the payment page elements Example:Example: fontVariantEastAsian: 'ruby'fontVariantEastAsian: 'ruby'

fontVariantLigaturesfontVariantLigatures normalnormal The font ligatures variant of the payment page elements The font ligatures variant of the payment page elements Example:Example: fontVariantLigatures: 'common-ligatures'fontVariantLigatures: 'common-ligatures'

fontVariantNumericfontVariantNumeric normalnormal The font numeric variant of the payment page elements The font numeric variant of the payment page elements Example:Example: fontVariantNumeric: 'slashed-zero'fontVariantNumeric: 'slashed-zero'

fontWeightfontWeight normalnormal The font weight of the payment page elements The font weight of the payment page elements Example:Example: fontWeight: 'bold'fontWeight: 'bold'

letterSpacingletterSpacing normalnormal The letter spacing of the payment page elements The letter spacing of the payment page elements Example:Example: letterSpacing: '2px'letterSpacing: '2px'

lineHeightlineHeight normalnormal The line height of the payment page elements The line height of the payment page elements Example:Example: lineHeight: '80%'lineHeight: '80%'

marginmargin 3px3px The margin of the payment page elements The margin of the payment page elements Example:Example: margin: '10px 12px'margin: '10px 12px'

marginBottommarginBottom marginmarginParameterParameter

The bottom margin of the payment page elements The bottom margin of the payment page elements Example:Example: marginBottom: '8px'marginBottom: '8px'

marginLeftmarginLeft marginmarginParameterParameter

The left margin of the payment page elements The left margin of the payment page elements Example:Example: marginLeft: '8px'marginLeft: '8px'

marginRightmarginRight marginmarginParameterParameter

The right margin of the payment page elements The right margin of the payment page elements Example:Example: marginRight: '8px'marginRight: '8px'

marginTopmarginTop marginmarginParameterParameter

The top margin of the payment page elements The top margin of the payment page elements Example:Example: marginTop: '8px'marginTop: '8px'

opacityopacity 11 The opacity of the payment page elements The opacity of the payment page elements Example:Example: opacity: '0.8'opacity: '0.8'

outlineoutline nonenone The outline of the payment page elements The outline of the payment page elements Example:Example: outline: '2px dashed pink'outline: '2px dashed pink'

outlineColoroutlineColor outlineoutlineParameterParameter

The outline color of the payment page elements The outline color of the payment page elements Example:Example: outlineColor: 'green'outlineColor: 'green'

outlineStyleoutlineStyle outlineoutlineParameterParameter

The outline style of the payment page elements The outline style of the payment page elements Example:Example: outlineStyle: 'solid'outlineStyle: 'solid'

outlineWidthoutlineWidth outlineoutlineParameterParameter

The outline width of the payment page elements The outline width of the payment page elements Example:Example: outlineWidth: '4px'outlineWidth: '4px'

paddingpadding 10px 12px10px 12px The padding of the payment page elements The padding of the payment page elements Example:Example: padding: '15px'padding: '15px'

paddingBottompaddingBottom paddingpaddingParameterParameter

The bottom padding of the payment page elements The bottom padding of the payment page elements Example:Example: paddingBottom: '12px'paddingBottom: '12px'

paddingLeftpaddingLeft paddingpaddingParameterParameter

The left padding of the payment page elements The left padding of the payment page elements Example:Example: paddingLeft: '12px'paddingLeft: '12px'

ParameterParameter DefaultDefault DescriptionDescription

Page 70 of 127

ParameterParameter Example:Example: paddingLeft: '12px'paddingLeft: '12px'

paddingRightpaddingRight paddingpaddingParameterParameter

The right padding of the payment page elements The right padding of the payment page elements Example:Example: paddingRight: '12px'paddingRight: '12px'

paddingToppaddingTop paddingpaddingParameterParameter

The top padding of the payment page elements The top padding of the payment page elements Example:Example: paddingTop: '12px'paddingTop: '12px'

textShadowtextShadow nonenone The text shadow of the payment page elements The text shadow of the payment page elements Example:Example: textShadow: '2px 2px gray'textShadow: '2px 2px gray'

transitiontransition nonenone The transition of the payment page elements The transition of the payment page elements Example:Example: transition: 'width 2s'transition: 'width 2s'

mozAppearancemozAppearance nonenone The appearance of the payment page elements on Firefox The appearance of the payment page elements on Firefox Example:Example: mozAppearance: 'button'mozAppearance: 'button'

mozOsxFontSmoothingmozOsxFontSmoothing autoauto The font smoothing of the payment page elements in Firefox on Mac OS The font smoothing of the payment page elements in Firefox on Mac OS Example:Example: mozOsxFontSmoothing: 'grayscale'mozOsxFontSmoothing: 'grayscale'

mozTapHighlightColormozTapHighlightColor blackblack The tap highlight color of the payment page elements on Firefox The tap highlight color of the payment page elements on Firefox Example:Example: mozTapHighlightColor: 'red'mozTapHighlightColor: 'red'

webkitAppearancewebkitAppearance nonenone The appearance of the payment page elements on WebKit- and Blink-based browsers The appearance of the payment page elements on WebKit- and Blink-based browsers Example:Example: webkitAppearance: 'button'webkitAppearance: 'button'

webkitFontSmoothingwebkitFontSmoothing autoauto The font smoothing of the payment page elements in WebKit- and Blink-based browsers The font smoothing of the payment page elements in WebKit- and Blink-based browsers Example:Example: webkitFontSmoothing: 'antialiased'webkitFontSmoothing: 'antialiased'

webkitTapHighlightColorwebkitTapHighlightColor blackblack The tap highlight color of the payment page elements on WebKit-and Blink-based browsers The tap highlight color of the payment page elements on WebKit-and Blink-based browsers Example:Example: webkitTapHighlightColor: 'red'webkitTapHighlightColor: 'red'

cardImageAlignmentcardImageAlignment leftleft The alignment of the card image in the card number field The alignment of the card image in the card number field Example:Example: cardImageAlignment: 'right'cardImageAlignment: 'right' Options:Options: 'left', 'right', 'none''left', 'right', 'none'

cardImageSizecardImageSize halfhalf The size of the card image in the card number field The size of the card image in the card number field Example:Example: cardImageSize: 'full'cardImageSize: 'full' Options:Options: 'half', 'full''half', 'full'

cardImageAnimationcardImageAnimation enabledenabled The animation of the card image in the card number field upon successful validation The animation of the card image in the card number field upon successful validation Example:Example: cardImageAnimation: 'disabled'cardImageAnimation: 'disabled' Options:Options: 'enabled', 'disabled''enabled', 'disabled'

cardIconSetcardIconSet 00 The cardIconSet to use for the cardImages. If greater than 0, the chosen icon set will also beThe cardIconSet to use for the cardImages. If greater than 0, the chosen icon set will also beused for the accepted card type icons below used for the accepted card type icons below Example:Example: cardIconSet: '1'cardIconSet: '1' Options:Options: '0', '1', '2''0', '1', '2'

cardTypeDisplaycardTypeDisplay enabledenabled The display of icons of the accepted card types The display of icons of the accepted card types Example:Example: cardTypeDisplay: 'disabled'cardTypeDisplay: 'disabled' Options:Options: 'enabled', 'disabled''enabled', 'disabled'

errorDisplayModeerrorDisplayMode labellabel The display mode of the field validation errors The display mode of the field validation errors Example:Example: errorDisplayMode: 'popup'errorDisplayMode: 'popup' Options:Options: 'label', 'popup''label', 'popup'

ParameterParameter DefaultDefault DescriptionDescription

Card Icon SetsCard Icon Sets

Page 71 of 127

IndexIndex IconsIcons

00 Set uses Set uses Font AwesomeFont Awesome icons instead of images. This is the default icon set that is used if no index, or an invalid index, is sent. icons instead of images. This is the default icon set that is used if no index, or an invalid index, is sent.

11

22

processDDebitAuthprocessDDebitAuthThe processDDebitAuth method is used to initiate an electronic (paperless) direct debit authorization formThe processDDebitAuth method is used to initiate an electronic (paperless) direct debit authorization form

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processDDebitAuthprocessDDebitAuth

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

Customer ParametersCustomer Parameters

Page 72 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone RequiredRequired Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail RequiredRequired Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

Payment Account DetailsPayment Account Details

ParameterParameter RequiredRequired DescriptionDescription

paymentAccountBSBpaymentAccountBSB RequiredRequired BSB of the account to be debited. BSB of the account to be debited. Example:Example: 123123123123

paymentAccountNamepaymentAccountName RequiredRequired The name on the account to be debited. The name on the account to be debited. Example:Example: Bob JonesBob Jones

paymentAccountNumberpaymentAccountNumber RequiredRequired Account number of the account to be debited. Account number of the account to be debited. Example:Example: 234523451234523451

transactionAmounttransactionAmount NotNotRequiredRequired

The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. This field is not required if you are submitting aThis field is not required if you are submitting adirect debit authorization that has a variable amount.direct debit authorization that has a variable amount. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD or NZD. One of the following: AUD or NZD. Example:Example: AUDAUD

Verification HashVerification Hash

Page 73 of 127

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. (Field is only(Field is onlyrequired if transactionAmount and transactionCurrency have been set for a DDA)required if transactionAmount and transactionCurrency have been set for a DDA) Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Redirect and Notification ParametersRedirect and Notification Parameters

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

notifyURLnotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. Example:Example:

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. SeeThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.

Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

Customization ParametersCustomization Parameters

ParameterParameter RequiredRequired DescriptionDescription

logoURLlogoURL NotNotRequiredRequired

The URL to an image that will appear in the header of the hosted payment page. Image must be of PNG formatThe URL to an image that will appear in the header of the hosted payment page. Image must be of PNG formatand max dimensions of 90x90 pixels and a file size limit of 1500 kilobytes. If no logoURL is supplied a defaultand max dimensions of 90x90 pixels and a file size limit of 1500 kilobytes. If no logoURL is supplied a defaultDirect Debit icon is displayed. Direct Debit icon is displayed. Example:Example: https://www.example.com/logo.pnghttps://www.example.com/logo.png

hostedIDhostedID NotNotRequiredRequired

Digits only. The ID of the customized hosted payment page. This can be implemented if multiple hosted DDADigits only. The ID of the customized hosted payment page. This can be implemented if multiple hosted DDApages with different logos and banners are a requirement. pages with different logos and banners are a requirement. Example:Example: 11

custom1custom1 NotNotRequiredRequired

Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 NotNotRequiredRequired

Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 NotNotRequiredRequired

Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Production API Endpoint

https://api.merchantwarrior.com/transfer/

Sandbox API Endpoint

https://base.merchantwarrior.com/transfer/

Transaction Type HashTransaction Type Hash

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Web URL HashWeb URL Hash

Page 74 of 127

Page 75 of 127

Transparent RedirectTransparent Redirect

The following sub-sections will outline the various API methods present in the The following sub-sections will outline the various API methods present in the Merchant Warrior Transparent RedirectMerchant Warrior Transparent Redirect..

IntroductionIntroduction

The Transparent Redirect (also referred to as a Direct POST) service allows merchants to host and customize a secure hostedThe Transparent Redirect (also referred to as a Direct POST) service allows merchants to host and customize a secure hosted

payment page themselves, whilst assisting in reducing the scope of payment page themselves, whilst assisting in reducing the scope of compliance. compliance.

Merchants who do not wish to store, process or transmit credit card (Merchants who do not wish to store, process or transmit credit card ( ) will be able to achieve this with this service.) will be able to achieve this with this service.

Request FormatRequest Format

API requests are submitted to the Transparent Redirect service using API requests are submitted to the Transparent Redirect service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

Respone FormatRespone Format

The Transparent Redirect service will return responses in The Transparent Redirect service will return responses in format to a specified notifyURL via an Asynchronous format to a specified notifyURL via an Asynchronous ..

Response paramaters are also returned in the GET string of the specified returnURL via a Response paramaters are also returned in the GET string of the specified returnURL via a ..

Available MethodsAvailable Methods

The Transparent Redirect service consists of the following methods: The Transparent Redirect service consists of the following methods:

• • : Generates a one time access token for submission with transactions : Generates a one time access token for submission with transactions

• • : Performs a purchase transaction on a customer's credit card : Performs a purchase transaction on a customer's credit card

• • : Performs a : Performs a on a customer's credit card on a customer's credit card

• • : Adds a card to the Local or Global Vault: Adds a card to the Local or Global Vault

getAccessTokengetAccessToken

The getAccessToken method generates a one time access token that acts as an additional security measure to identify that the requestThe getAccessToken method generates a one time access token that acts as an additional security measure to identify that the request

originates from a valid merchant and that the request has not been tampered with during transmission.originates from a valid merchant and that the request has not been tampered with during transmission.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: getAccessTokengetAccessToken

Authentication ParametersAuthentication Parameters

PCI DSSPCI DSS

PANPAN

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

XMLXML HTTP POSTHTTP POST

302 redirect302 redirect

getAccessTokengetAccessToken

processCardprocessCard

processAuthprocessAuth pre-authorizationpre-authorization

addCardaddCard

Page 76 of 127

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Verification Hash ParametersVerification Hash Parameters

ParameterParameter RequiredRequired DescriptionDescription

hashhash** Required/Required/NotNotRequiredRequired

The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. This parameter is for information on how to construct the hash correctly. This parameter isnotnot required if you are generating an Access Token for use with the Transparent Redirect required if you are generating an Access Token for use with the Transparent Redirect . . Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid Length:Valid Length: 32 characters 32 characters

urlHashurlHash RequiredRequired The urlHash field is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe urlHash field is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

The hash parameter is currently only required for the following methods: The hash parameter is currently only required for the following methods: and and . The . The method does NOT method does NOTrequire the hash parameter to be set.require the hash parameter to be set.

processCardprocessCard

The processCard method is the method used to perform a purchase request.The processCard method is the method used to perform a purchase request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processCardprocessCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

accessTokenaccessToken RequiredRequired The value returned by the The value returned by the method. method. Example:Example: 578de10d9a578de10d9a

General Transaction ParametersGeneral Transaction Parameters

Transaction Type HashTransaction Type HashaddCard methodaddCard method

Web URL HashWeb URL Hash

processCardprocessCard processAuthprocessAuth addCardaddCard

getAccessTokengetAccessToken

Page 77 of 127

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Redirect and Notification ParametersRedirect and Notification Parameters

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

notifyURLnotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. It is important that this URL does It is important that this URL does notnot contain any white contain any whitespace characters. space characters. Example:Example:

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. SeeThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.

Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

Customer ParametersCustomer Parameters

queryCardqueryCard

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Web URL HashWeb URL Hash

Page 78 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop and hyphen characters. This field can only contain alphanumeric characters, as well as the full stop and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

Page 79 of 127

ParameterParameter RequiredRequired DescriptionDescription

paymentCardNumberpaymentCardNumber RequiredRequired Only certain card numbers are deemed valid in the test environment. Only certain card numbers are deemed valid in the test environment. See See for more for moreinformation. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). information. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

paymentCardExpirypaymentCardExpiry RequiredRequired This must be MMYY format. The month must be zero padded if it is less than 10. This must be MMYY format. The month must be zero padded if it is less than 10. Example:Example: 05130513 Valid length:Valid length: 4 digits 4 digits

paymentCardNamepaymentCardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedThis is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedby the customer. Please contact Merchant Warrior for more information. by the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

addCardaddCard NotNotRequiredRequired

This value is a This value is a to denote whether the paymentCardNumber should automatically be added to to denote whether the paymentCardNumber should automatically be added tothe Merchant Warrior Vault after processing the transaction. the Merchant Warrior Vault after processing the transaction. Example:Example: 11 Valid Length:Valid Length: 1 digit 1 digit

Global Vault ParametersGlobal Vault Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardGlobalcardGlobal Not RequiredNot Required This must be in a This must be in a format. format. Example:Example: 11

cardEmailcardEmail Not RequiredNot Required This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact Not RequiredNot Required This must be in a valid Australian or International mobile number format. This must be in a valid Australian or International mobile number format. Example:Example: 04862929920486292992 or or +614920202820+614920202820

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Test DataTest Data

booleanboolean

booleanboolean

Transaction Type HashTransaction Type Hash

Page 80 of 127

processAuthprocessAuth

The processAuth method is used to perform a The processAuth method is used to perform a request. request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processAuthprocessAuth

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

accessTokenaccessToken RequiredRequired The value returned by the The value returned by the method. method. Example:Example: 578de10d9a578de10d9a

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Redirect and Notification ParametersRedirect and Notification Parameters

pre-authorizationpre-authorization

getAccessTokengetAccessToken

queryCardqueryCard

Page 81 of 127

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

notifyURLnotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. It is important that this URL does It is important that this URL does notnot contain any white contain any whitespace characters. space characters. Example:Example:

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. SeeThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.

Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

Customer ParametersCustomer Parameters

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop and hyphen characters. This field can only contain alphanumeric characters, as well as the full stop and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

storeIDstoreID NotNotRequiredRequired

The value of this field is the merchant's store name. Please note that you need to contact Merchant WarriorThe value of this field is the merchant's store name. Please note that you need to contact Merchant Warriorto enable the storeID feature before you can use this parameter. to enable the storeID feature before you can use this parameter. Example:Example: Test store nameTest store name

Payment ParametersPayment Parameters

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Web URL HashWeb URL Hash

Page 82 of 127

ParameterParameter RequiredRequired DescriptionDescription

paymentCardNumberpaymentCardNumber RequiredRequired Only certain card numbers are deemed valid in the test environment. Only certain card numbers are deemed valid in the test environment. See See for more for moreinformation. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). information. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

paymentCardExpirypaymentCardExpiry RequiredRequired This must be MMYY format. The month must be zero padded if it is less than 10. This must be MMYY format. The month must be zero padded if it is less than 10. Example:Example: 05130513 Valid length:Valid length: 4 digits 4 digits

paymentCardNamepaymentCardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

paymentCardCSCpaymentCardCSC NotNotRequiredRequired

This is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedThis is also known as the CVN or CVV/2. This is required by some Acquirers if the transaction is initiatedby the customer. Please contact Merchant Warrior for more information. by the customer. Please contact Merchant Warrior for more information. Example:Example: 123123 Valid length:Valid length: Between 3 and 4 characters Between 3 and 4 characters

addCardaddCard NotNotRequiredRequired

This value is a This value is a to denote whether the paymentCardNumber should automatically be added to to denote whether the paymentCardNumber should automatically be added tothe Merchant Warrior Vault after processing the transaction. the Merchant Warrior Vault after processing the transaction. Example:Example: 11 Valid Length:Valid Length: 1 digit 1 digit

Global Vault ParametersGlobal Vault Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardGlobalcardGlobal Not RequiredNot Required This must be in a This must be in a format. format. Example:Example: 11

cardEmailcardEmail Not RequiredNot Required This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact Not RequiredNot Required This must be in a valid Australian or International mobile number format. This must be in a valid Australian or International mobile number format. Example:Example: 04862929920486292992 or or +614920202820+614920202820

Custom ParametersCustom Parameters

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Test DataTest Data

booleanboolean

booleanboolean

Transaction Type HashTransaction Type Hash

Page 83 of 127

addCardaddCard

The addCard method is used to add a new card to the MW Vault.The addCard method is used to add a new card to the MW Vault.

After the initial addCard via the Transparent Redirect service, all future Token Payments operations such as removal of card data, update ofAfter the initial addCard via the Transparent Redirect service, all future Token Payments operations such as removal of card data, update ofexpiry etc. should be handled via the expiry etc. should be handled via the service. service.

Request-ParametersRequest-Parameters

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

accessTokenaccessToken RequiredRequired The value returned by the The value returned by the method. method. Example:Example: 578de10d9a578de10d9a

Cardholder DataCardholder Data

ParameterParameter RequiredRequired DescriptionDescription

paymentCardNamepaymentCardName RequiredRequired This must contain at the very least a space and no less than two characters. Only alphanumericThis must contain at the very least a space and no less than two characters. Only alphanumericcharacters, hyphens, spaces and full stops are allowed. characters, hyphens, spaces and full stops are allowed. Example:Example: Mr. Example PersonMr. Example Person or or MR E PERSONMR E PERSON or or Example PersonExample Person Valid length:Valid length: Between 3 and 255 characters Between 3 and 255 characters

paymentCardNumberpaymentCardNumber RequiredRequired Only certain card numbers are deemed valid in the test environment. Only certain card numbers are deemed valid in the test environment. See See for more for moreinformation. information. Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Do not send separators with the card number (e.g. 1234-5678… or 1234 5678). Example:Example: 51234567890123465123456789012346 or or 45570123456789024557012345678902 Valid length:Valid length: Between 13 and 16 digits Between 13 and 16 digits

paymentCardExpirypaymentCardExpiry RequiredRequired This must be MMYY format. The month must be zero padded if it is less than 10. This must be MMYY format. The month must be zero padded if it is less than 10. Example:Example: 05130513 Valid length:Valid length: 4 digits 4 digits

Global Vault ParametersGlobal Vault Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardGlobalcardGlobal Not RequiredNot Required This must be in a This must be in a format. format. Example:Example: 11

cardEmailcardEmail Not RequiredNot Required This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact Not RequiredNot Required This must be in a valid Australian or International mobile number format. This must be in a valid Australian or International mobile number format. Example:Example: 04862929920486292992 or or +614920202820+614920202820

Redirect and Notification ParametersRedirect and Notification Parameters

Direct APIDirect API

getAccessTokengetAccessToken

Test DataTest Data

booleanboolean

Page 84 of 127

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

notifyURLnotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. It is important that this URL does It is important that this URL does notnot contain any white contain any whitespace characters. space characters. Example:Example:

Custom ParametersCustom Parameters

We do not store these custom fields for addCard requestsWe do not store these custom fields for addCard requests

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. SeeThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.

Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

requests must be sent to the following API endpoints:

Production API Endpoint

https://api.merchantwarrior.com/iframe/

Sandbox API Endpoint

https://base.merchantwarrior.com/iframe/

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Web URL HashWeb URL Hash

getAccessToken

Page 85 of 127

iFrame generation requests must be sent to the following API endpoints:

Production API Endpoint

https://secure.merchantwarrior.com/iframe/

Sandbox API Endpoint

https://securetest.merchantwarrior.com/iframe/

Page 86 of 127

Transparent iFrameTransparent iFrame

The following sub-sections will outline the various API methods present in the The following sub-sections will outline the various API methods present in the Merchant Warrior Transparent iFrameMerchant Warrior Transparent iFrame service. service.

IntroductionIntroduction

The MW Transparent iFrame service allows merchants to embed an MW iFrame in their website and/or application. The MW iFrameThe MW Transparent iFrame service allows merchants to embed an MW iFrame in their website and/or application. The MW iFrame

can process transactions and/or store credit card information in the MW Vault.can process transactions and/or store credit card information in the MW Vault.

Merchants who do not wish to store, process or transmit credit card (Merchants who do not wish to store, process or transmit credit card ( ) in order to reduce their ) in order to reduce their scope will be able to scope will be able to

achieve this with this service.achieve this with this service.

Custom iFrame(s)Custom iFrame(s)

The Transparent iFrame can be fully customized to maintain the look and feel of the website and/or application(s) that it is embedded in.The Transparent iFrame can be fully customized to maintain the look and feel of the website and/or application(s) that it is embedded in.

In order to do this the relevant (addCard, processCard or processAuth) HTML skeleton form will need to be downloaded (from In order to do this the relevant (addCard, processCard or processAuth) HTML skeleton form will need to be downloaded (from ))

and themed accordingly.and themed accordingly.

The HTML skeleton form can be customized to handle frontend validation and styling. After the HTML skeleton form has beenThe HTML skeleton form can be customized to handle frontend validation and styling. After the HTML skeleton form has been

customized appropriately, all assets (css, images and javascript) should be compressed and emailed to our technical teamcustomized appropriately, all assets (css, images and javascript) should be compressed and emailed to our technical team

([email protected]) for review.([email protected]) for review.

If the customized Transparent iFrame is approved by our technical team it will be made accessible on the Merchant Warrior platformIf the customized Transparent iFrame is approved by our technical team it will be made accessible on the Merchant Warrior platform

and will be available by submitting the ‘style’ and ‘custom’ parameters in the appropriate transaction request (addCard, processCard orand will be available by submitting the ‘style’ and ‘custom’ parameters in the appropriate transaction request (addCard, processCard or

processAuth).processAuth).

Request FormatRequest Format

API requests are submitted to the Transparent iFrame service using API requests are submitted to the Transparent iFrame service using , and must be performed over , and must be performed over ..

It is important to note that as of It is important to note that as of v3.2 it is recommended to submit requests using a secure version of v3.2 it is recommended to submit requests using a secure version of (currently v1.1 or higher). (currently v1.1 or higher).As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.As of the 30th of June 2018 the MW platform will no longer accept requests via SSL and/or TLS v1.0.

In order for an iFrame to be generated successfully, a request must be sent from a website or application that has its form target set asIn order for an iFrame to be generated successfully, a request must be sent from a website or application that has its form target set as

the target of the iFrame.the target of the iFrame.

A simple implementation of the Transparent iFrame is made possible by creating a standard HTML form and submitting the form viaA simple implementation of the Transparent iFrame is made possible by creating a standard HTML form and submitting the form via

javascript, AJAX or any other technology in use by the website and/or application(s).javascript, AJAX or any other technology in use by the website and/or application(s).

Respone FormatRespone Format

The Transparent iFrame service will return responses in The Transparent iFrame service will return responses in format to a specified notifyURL via an Asynchronous format to a specified notifyURL via an Asynchronous ..

Response paramaters are also returned in the GET string of the specified returnURL via a Response paramaters are also returned in the GET string of the specified returnURL via a ..

Available MethodsAvailable Methods

The Transparent iFrame service consists of the following methods: The Transparent iFrame service consists of the following methods:

• • : Generates a one time access token for submission with transactions : Generates a one time access token for submission with transactions

• • : Performs a purchase transaction on a customer's credit card : Performs a purchase transaction on a customer's credit card

• • : Performs a : Performs a on a customer's credit card on a customer's credit card

• • : Adds a card to the Local or Global Vault: Adds a card to the Local or Global Vault

PANPAN PCI DSSPCI DSS

herehere

POSTPOST HTTPSHTTPS

PCI DSSPCI DSS TLSTLS

XMLXML HTTP POSTHTTP POST

302 redirect302 redirect

getAccessTokengetAccessToken

processCardprocessCard

processAuthprocessAuth pre-authorizationpre-authorization

addCardaddCard

Page 87 of 127

getAccessTokengetAccessToken

The getAccessToken method generates a one time access token that acts as an additional security measure to identify that the requestThe getAccessToken method generates a one time access token that acts as an additional security measure to identify that the request

originates from a valid merchant and that the request has not been tampered with during transmission.originates from a valid merchant and that the request has not been tampered with during transmission.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: getAccessTokengetAccessToken

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

Verification Hash ParametersVerification Hash Parameters

ParameterParameter RequiredRequired DescriptionDescription

hashhash** Required/Required/NotNotRequiredRequired

The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. This parameter is for information on how to construct the hash correctly. This parameter isnotnot required if you are generating an Access Token for use with the Transparent Redirect required if you are generating an Access Token for use with the Transparent Redirect . . Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid Length:Valid Length: 32 characters 32 characters

urlHashurlHash RequiredRequired The urlHash field is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe urlHash field is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

The hash parameter is currently only required for the following methods: The hash parameter is currently only required for the following methods: and and . The . The method does NOT method does NOTrequire the hash parameter to be set.require the hash parameter to be set.

processCardprocessCard

The processCard method is the method used to perform a purchase request.The processCard method is the method used to perform a purchase request.

Request-ParametersRequest-Parameters

API MethodAPI Method

Transaction Type HashTransaction Type HashaddCard methodaddCard method

Web URL HashWeb URL Hash

processCardprocessCard processAuthprocessAuth addCardaddCard

Page 88 of 127

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processCardprocessCard

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

accessTokenaccessToken RequiredRequired The value returned by the The value returned by the method. method. Example:Example: 578de10d9a578de10d9a

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Redirect and Notification ParametersRedirect and Notification Parameters

getAccessTokengetAccessToken

queryCardqueryCard

Page 89 of 127

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

returnTargetreturnTarget NotNotRequiredRequired

One of the following: _self, _top, _parent. This defines the target of the returnURL. Defaults to _top if notOne of the following: _self, _top, _parent. This defines the target of the returnURL. Defaults to _top if notset. If it is set to _none, no redirect will occur (although this is not advised) set. If it is set to _none, no redirect will occur (although this is not advised) Example:Example: _top _top

notifyURLnotifyURL RequiredRequired The asynchronous POST notifications will be sent to this URL. It is important that this URL does The asynchronous POST notifications will be sent to this URL. It is important that this URL does notnot contain containany white space characters. any white space characters. Example:Example:

postmessageURLpostmessageURL NotNotRequiredRequired

The domain of the parent for the purpose of sending a postmessage from the iFrame to the parent afterThe domain of the parent for the purpose of sending a postmessage from the iFrame to the parent aftercompleting the transaction. To respond or interpret this message you will need to add a listener to thecompleting the transaction. To respond or interpret this message you will need to add a listener to theparent, as shown in parent, as shown in . . Example:Example: https://www.example.com/https://www.example.com/

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction.The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction.See See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

Customer ParametersCustomer Parameters

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Handling a postmessageHandling a postmessage

Web URL HashWeb URL Hash

Page 90 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

Payment ParametersPayment Parameters

ParameterParameter RequiredRequired DescriptionDescription

addCardaddCard NotNotRequiredRequired

This value is a This value is a to denote whether the paymentCardNumber should automatically be added to the to denote whether the paymentCardNumber should automatically be added to theMerchant Warrior Vault after processing the transaction. Merchant Warrior Vault after processing the transaction. Example:Example: 11 Valid Length:Valid Length: 1 digit 1 digit

cardTypescardTypes NotNotrequiredrequired

This field is a comma delimited list of card types that will be accepted. If not set all card types will be acceptedThis field is a comma delimited list of card types that will be accepted. If not set all card types will be accepted(visa,mastercard,amex,diners,discover,jcb). (visa,mastercard,amex,diners,discover,jcb). Example:Example: Visa, MastercardVisa, Mastercard

Custom ParametersCustom Parameters

booleanboolean

Page 91 of 127

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Customization ParametersCustomization Parameters

ParameterParameter RequiredRequired DescriptionDescription

stylestyle NotNotRequiredRequired

Possible values are Possible values are defaultdefault or or customcustom. If not set the default styling is used. . If not set the default styling is used. Example:Example: customcustom

iframeIDiframeID NotNotRequiredRequired

This field is only applicable for customers with multiple custom iFrames. This field will not function correctly withoutThis field is only applicable for customers with multiple custom iFrames. This field will not function correctly withoutthe style parameter being set to the style parameter being set to customcustom. . Example:Example: 11

processAuthprocessAuth

The processAuth method is used to perform a The processAuth method is used to perform a request. request.

Request-ParametersRequest-Parameters

API MethodAPI Method

ParameterParameter RequiredRequired DescriptionDescription

methodmethod RequiredRequired This field is case sensitive. This field is case sensitive. Example:Example: processAuthprocessAuth

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

accessTokenaccessToken RequiredRequired The value returned by the The value returned by the method. method. Example:Example: 578de10d9a578de10d9a

Transaction Type HashTransaction Type Hash

pre-authorizationpre-authorization

getAccessTokengetAccessToken

Page 92 of 127

General Transaction ParametersGeneral Transaction Parameters

ParameterParameter RequiredRequired DescriptionDescription

transactionAmounttransactionAmount RequiredRequired The amount must be formatted to have two decimal places. Any amounts without two decimal placesThe amount must be formatted to have two decimal places. Any amounts without two decimal placesor amounts less than one cent will be rejected. or amounts less than one cent will be rejected. Example:Example: 10.0010.00

transactionCurrencytransactionCurrency RequiredRequired One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.One of the following: AUD, CAD, EUR, GBP, JPY, NZD, SGD, USD. This is provider dependant.Please check with MW before attempting to process transactions in any currency other than AUD.Please check with MW before attempting to process transactions in any currency other than AUD.This field is case insensitive. This field is case insensitive. Example:Example: AUDAUD

transactionProducttransactionProduct RequiredRequired A product (or sale) id or description. We recommend using an order/product id. This field’s primaryA product (or sale) id or description. We recommend using an order/product id. This field’s primarypurpose is to help the transaction be identifiable for reporting and accounting purposes. purpose is to help the transaction be identifiable for reporting and accounting purposes. Example:Example: ABC4321ABC4321 Valid length:Valid length: Up to 255 characters. Some Acquirers limit this field to 40 characters. Up to 255 characters. Some Acquirers limit this field to 40 characters.

transactionReferenceIDtransactionReferenceID NotNotRequiredRequired

This is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainThis is a merchant’s unique reference ID for a transaction sent to Merchant Warrior. The mainpurpose of this ID is to verify the transaction via the purpose of this ID is to verify the transaction via the method in the event a valid response method in the event a valid responseis not received. is not received. Example:Example: A257240023321A257240023321 Valid length:Valid length: Up to 40 characters Up to 40 characters

Redirect and Notification ParametersRedirect and Notification Parameters

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

returnTargetreturnTarget NotNotRequiredRequired

One of the following: _self, _top, _parent. This defines the target of the returnURL. Defaults to _top if notOne of the following: _self, _top, _parent. This defines the target of the returnURL. Defaults to _top if notset. If it is set to _none, no redirect will occur (although this is not advised) set. If it is set to _none, no redirect will occur (although this is not advised) Example:Example: _top _top

notifyURLnotifyURL RequiredRequired The asynchronous POST notifications will be sent to this URL. It is important that this URL does The asynchronous POST notifications will be sent to this URL. It is important that this URL does notnot contain containany white space characters. any white space characters. Example:Example:

postmessageURLpostmessageURL NotNotRequiredRequired

The domain of the parent for the purpose of sending a postmessage from the iFrame to the parent afterThe domain of the parent for the purpose of sending a postmessage from the iFrame to the parent aftercompleting the transaction. To respond or interpret this message you will need to add a listener to thecompleting the transaction. To respond or interpret this message you will need to add a listener to theparent, as shown in parent, as shown in . . Example:Example: https://www.example.com/https://www.example.com/

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction.The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction.See See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

Customer ParametersCustomer Parameters

queryCardqueryCard

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Handling a postmessageHandling a postmessage

Web URL HashWeb URL Hash

Page 93 of 127

ParameterParameter RequiredRequired DescriptionDescription

customerNamecustomerName RequiredRequired This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,This field can only contain alphanumeric characters, as well as the full stop, comma, apostrophe,ampersand, space and hyphen characters. ampersand, space and hyphen characters. Example:Example: Mr. Example PersonMr. Example Person Valid length:Valid length: Between 2 and 255 characters Between 2 and 255 characters

customerCountrycustomerCountry RequiredRequired Two letter ISO 3166-1 alpha-2 country code. Two letter ISO 3166-1 alpha-2 country code. Example:Example: AUAU Valid length:Valid length: 2 characters 2 characters

customerStatecustomerState RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: QueenslandQueensland Valid length:Valid length: Up to 75 characters Up to 75 characters

customerCitycustomerCity RequiredRequired Freeform field, keep consistent for your records and reporting. Freeform field, keep consistent for your records and reporting. Example:Example: BrisbaneBrisbane Valid length:Valid length: Up to 75 characters Up to 75 characters

customerAddresscustomerAddress RequiredRequired Freeform field. Freeform field. Example:Example: 123 Test Street123 Test Street Valid length:Valid length: Up to 255 characters Up to 255 characters

customerPostCodecustomerPostCode RequiredRequired This can also accomodate ZIP/Post codes for international transactions. This can also accomodate ZIP/Post codes for international transactions. Example:Example: 40004000 Valid length:Valid length: Between 4 and 10 characters Between 4 and 10 characters

customerPhonecustomerPhone NotNotRequiredRequired

Anything other than +,-, space and 0-9 will be stripped. Anything other than +,-, space and 0-9 will be stripped. Example:Example: 04012345670401234567 or or 6173123456761731234567 Valid length:Valid length: Up to 25 characters Up to 25 characters

customerEmailcustomerEmail NotNotRequiredRequired

Sending this optional parameter is highly recommended. Sending this optional parameter is highly recommended. Example:Example: [email protected]@example.com Valid length:Valid length: Up to 255 characters Up to 255 characters

customerIPcustomerIP NotNotRequiredRequired

Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Any valid IPv4 or IPv6 address is accepted. Sending this optional parameter is highly recommended. Example:Example: 123.456.789.012123.456.789.012 or or 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 Valid length:Valid length: Up to 39 characters Up to 39 characters

Payment ParametersPayment Parameters

ParameterParameter RequiredRequired DescriptionDescription

addCardaddCard NotNotRequiredRequired

This value is a This value is a to denote whether the paymentCardNumber should automatically be added to the to denote whether the paymentCardNumber should automatically be added to theMerchant Warrior Vault after processing the transaction. Merchant Warrior Vault after processing the transaction. Example:Example: 11 Valid Length:Valid Length: 1 digit 1 digit

cardTypescardTypes NotNotrequiredrequired

This field is a comma delimited list of card types that will be accepted. If not set all card types will be acceptedThis field is a comma delimited list of card types that will be accepted. If not set all card types will be accepted(visa,mastercard,amex,diners,discover,jcb). (visa,mastercard,amex,diners,discover,jcb). Example:Example: Visa, MastercardVisa, Mastercard

Custom ParametersCustom Parameters

booleanboolean

Page 94 of 127

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

hashhash RequiredRequired The verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in theThe verification hash is a combination of the MD5 of your API Passphrase, and specific parameters sent in thetransaction. See transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly. Example:Example: e9ddc296b76b3398934bfc06239073dfe9ddc296b76b3398934bfc06239073df Valid length:Valid length: 32 characters 32 characters

Customization ParametersCustomization Parameters

ParameterParameter RequiredRequired DescriptionDescription

stylestyle NotNotRequiredRequired

Possible values are Possible values are defaultdefault or or customcustom. If not set the default styling is used. . If not set the default styling is used. Example:Example: customcustom

iframeIDiframeID NotNotRequiredRequired

This field is only applicable for customers with multiple custom iFrames. This field will not function correctly withoutThis field is only applicable for customers with multiple custom iFrames. This field will not function correctly withoutthe style parameter being set to the style parameter being set to customcustom. . Example:Example: 11

addCardaddCard

The addCard method is used to add a new card to the MW Vault.The addCard method is used to add a new card to the MW Vault.

After the initial addCard via the Transparent iFrame service, all future Token Payments operations such as removal of card data, update ofAfter the initial addCard via the Transparent iFrame service, all future Token Payments operations such as removal of card data, update ofexpiry etc. should be handled via the expiry etc. should be handled via the service. service.

Request-ParametersRequest-Parameters

Authentication ParametersAuthentication Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

accessTokenaccessToken RequiredRequired The value returned by the The value returned by the method. method. Example:Example: 578de10d9a578de10d9a

Global Vault ParametersGlobal Vault Parameters

Transaction Type HashTransaction Type Hash

Direct APIDirect API

getAccessTokengetAccessToken

Page 95 of 127

ParameterParameter RequiredRequired DescriptionDescription

cardGlobalcardGlobal Not RequiredNot Required This must be in a This must be in a format. format. Example:Example: 11

cardEmailcardEmail Not RequiredNot Required This must be in a valid email format. This must be in a valid email format. Example:Example: [email protected]@merchantwarrior.com

cardContactcardContact Not RequiredNot Required This must be in a valid Australian or International mobile number format. This must be in a valid Australian or International mobile number format. Example:Example: 04862929920486292992 or or +614920202820+614920202820

Payment ParametersPayment Parameters

ParameterParameter RequiredRequired DescriptionDescription

cardTypescardTypes RequiredRequired This field is a comma delimited list of card types that will be accepted. If not set all card types will be acceptedThis field is a comma delimited list of card types that will be accepted. If not set all card types will be accepted(visa,mastercard,amex,diners,discover,jcb). (visa,mastercard,amex,diners,discover,jcb). Example:Example: visa, mastercardvisa, mastercard

Redirect and Notification ParametersRedirect and Notification Parameters

ParameterParameter RequiredRequired DescriptionDescription

returnURLreturnURL RequiredRequired The customer will be redirected to this URL upon completion of the transaction. The customer will be redirected to this URL upon completion of the transaction. Example:Example:

returnTargetreturnTarget NotNotRequiredRequired

One of the following: _self, _top, _parent. This defines the target of the returnURL. Defaults to _top if notOne of the following: _self, _top, _parent. This defines the target of the returnURL. Defaults to _top if notset. If it is set to _none, no redirect will occur (although this isn’t advised) set. If it is set to _none, no redirect will occur (although this isn’t advised) Example:Example: _top _top

notifyURLnotifyURL RequiredRequired Asynchronous POST notifications will be sent to this URL. Asynchronous POST notifications will be sent to this URL. Example:Example:

postmessageURLpostmessageURL NotNotRequiredRequired

The domain of the parent for the purpose of sending a postmessage from the iFrame to the parent afterThe domain of the parent for the purpose of sending a postmessage from the iFrame to the parent aftercompleting the transaction. To respond or interpret this message you will need to add a listener to thecompleting the transaction. To respond or interpret this message you will need to add a listener to theparent, as shown in parent, as shown in . . Example:Example: https://www.example.com/https://www.example.com/

Custom ParametersCustom Parameters

We do not store these custom fields for addCard requestsWe do not store these custom fields for addCard requests

ParameterParameter RequiredRequired DescriptionDescription

custom1custom1 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom1><custom1> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom2custom2 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom2><custom2> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

custom3custom3 Not RequiredNot Required Freeform field. Returned as Freeform field. Returned as <custom3><custom3> in the XML response. in the XML response. Valid length:Valid length: Up to 500 characters Up to 500 characters

Customization ParametersCustomization Parameters

booleanboolean

https://www.example.com/return.phphttps://www.example.com/return.php

https://www.example.com/notify.phphttps://www.example.com/notify.php

Handling a postmessageHandling a postmessage

Page 96 of 127

ParameterParameter RequiredRequired DescriptionDescription

stylestyle NotNotRequiredRequired

Possible values are Possible values are defaultdefault or or customcustom. If not set the default styling is used. . If not set the default styling is used. Example:Example: customcustom

iframeIDiframeID NotNotRequiredRequired

This field is only applicable for customers with multiple custom iFrames. This field will not function correctly withoutThis field is only applicable for customers with multiple custom iFrames. This field will not function correctly withoutthe style parameter being set to the style parameter being set to customcustom. . Example:Example: 11

Verification HashVerification Hash

ParameterParameter RequiredRequired DescriptionDescription

urlHashurlHash RequriedRequried The urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. SeeThe urlHash field is a combination of your API Passphrase, and specific parameters sent in the transaction. See for information on how to construct the hash correctly. for information on how to construct the hash correctly.

Example:Example: QueenslandQueensland Valid Length:Valid Length: Up to 32 characters Up to 32 characters

hashSalthashSalt RequiredRequired Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Used to salt the return hash used in the 302 Redirect to redirectURL upon the completion of a transaction. Example:Example: 3x4mpl3s4lt!3x4mpl3s4lt!

Web URL HashWeb URL Hash

Page 97 of 127

MW PayframeMW Payframe

MW Payframe is a hostable payment iframe that enables merchants to use Merchant Warrior's payment software on their ownMW Payframe is a hostable payment iframe that enables merchants to use Merchant Warrior's payment software on their own

websites. MW Payframe has two primary functions, generating a Payframe Token for use with a websites. MW Payframe has two primary functions, generating a Payframe Token for use with a or or

transaction, or adding a card to the MW Vault. Sample files can be downloaded transaction, or adding a card to the MW Vault. Sample files can be downloaded . .

We have created a JSFiddle for demonstration purposes. You will require your Merchant UUID and API Key to test the demo which canWe have created a JSFiddle for demonstration purposes. You will require your Merchant UUID and API Key to test the demo which can

be found be found ..

Constructor ParametersConstructor Parameters

ParameterParameter RequiredRequired DescriptionDescription

merchantUUIDmerchantUUID RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 123456789abcd123456789abcd

apiKeyapiKey RequiredRequired The value of this parameter is provided to you by Merchant Warrior. The value of this parameter is provided to you by Merchant Warrior. Example:Example: 1a3b5c1a3b5c

payframeDivIDpayframeDivID RequiredRequired This is the id of the div you wish the payframe to appear in. This is the id of the div you wish the payframe to appear in. Example:Example: cardDatacardData

payframeSrcpayframeSrc RequiredRequired This is the Merchant Warrior url that the payframe will be loaded from. This is the Merchant Warrior url that the payframe will be loaded from. Example:Example: https://secure.merchantwarrior.com/payframe/https://secure.merchantwarrior.com/payframe/

submitUrlsubmitUrl RequiredRequired This parameter is used to set the target environment (Production, Camp). This parameter is used to set the target environment (Production, Camp). Example:Example: ProductionProduction

stylestyle NotNotRequiredRequired

This parameter is used to set custom styling for the payframe. This parameter is used to set custom styling for the payframe. Example:Example: {backgroundColor: 'Cyan', fontFamily: 'Times New Roman'}{backgroundColor: 'Cyan', fontFamily: 'Times New Roman'}

acceptedCardTypesacceptedCardTypes NotNotRequiredRequired

This parameter is a comma delimited list of card types that will be acceptedThis parameter is a comma delimited list of card types that will be accepted(visa,mastercard,amex,diners,discover,jcb). If not set only Visa and Mastercard will be accepted. (visa,mastercard,amex,diners,discover,jcb). If not set only Visa and Mastercard will be accepted. Example:Example: Visa, Mastercard, DinersVisa, Mastercard, Diners

methodmethod NotNotRequiredRequired

This parameter is used to set the action to be performed by the payframe (This parameter is used to set the action to be performed by the payframe ( , getPayframeToken)., getPayframeToken).By default, or if not set, the payframe will return a Payframe Token for use with a Process CardBy default, or if not set, the payframe will return a Payframe Token for use with a Process Cardtransaction. transaction. Example:Example: getPayframeTokengetPayframeToken

UsageUsage

Instantiate the payframe and set mwCallback (which is the callback function that runs after the payframe has completed its action),Instantiate the payframe and set mwCallback (which is the callback function that runs after the payframe has completed its action),

before deploying the payframe. After the customer has entered their card details, call the submitPayframe function. The submitPayframebefore deploying the payframe. After the customer has entered their card details, call the submitPayframe function. The submitPayframe

function will perform the action set by the method parameter, getPayframeToken by default. After the payframe has successfullyfunction will perform the action set by the method parameter, getPayframeToken by default. After the payframe has successfully

completed the chosen action (addCard or getPayframeToken), it will call mwCallback. The results of the action will be returned ascompleted the chosen action (addCard or getPayframeToken), it will call mwCallback. The results of the action will be returned as

parameters to the mwCallback function. parameters to the mwCallback function.

getPayframeToken will return the token status, the payframeToken, and the payframeKey, in that order; addCard will return the cardID.getPayframeToken will return the token status, the payframeToken, and the payframeKey, in that order; addCard will return the cardID.

The returned values will also be set as properties of the payframe. The payframeToken and payframeKey can be submitted with aThe returned values will also be set as properties of the payframe. The payframeToken and payframeKey can be submitted with a

or or request. A cardID can be submitted with a request. A cardID can be submitted with a or or request. If the payframe's request. If the payframe's

validation fails or there was an error processing the payframe's action, the response code and message for the error will be set asvalidation fails or there was an error processing the payframe's action, the response code and message for the error will be set as

properties of the payframe.properties of the payframe.

processCardprocessCard processAuthprocessAuth

herehere

herehere

addCardaddCard

processCardprocessCard processAuthprocessAuth processCardprocessCard processAuthprocessAuth

Page 98 of 127

Style ParametersStyle Parameters

This is a full list of the parameters that can be sent with the style parameter in the payframe's constructor. If a parameter isn't sent, theThis is a full list of the parameters that can be sent with the style parameter in the payframe's constructor. If a parameter isn't sent, the

payframe will use the default value listed.payframe will use the default value listed.

ParameterParameter DefaultDefault DescriptionDescription

widthwidth 500px500px The width of the payframe The width of the payframe Example:Example: width: '800px'width: '800px'

heightheight Depends onDepends onformLayoutformLayout

The height of the payframe The height of the payframe Example:Example: height: '350px'height: '350px'

formLayoutformLayout 00 The layout to use for the payframe elements. Example images of both of the layouts are shownThe layout to use for the payframe elements. Example images of both of the layouts are shownbelow below Example:Example: formLayout: '1'formLayout: '1' Options:Options: '0', '1''0', '1'

fieldHeightfieldHeight 40px40px The height of the payframe elements The height of the payframe elements Example:Example: fieldHeight: '60px'fieldHeight: '60px'

borderborder 1px solid1px solid#e6ebf1#e6ebf1

The border of the payframe elements The border of the payframe elements Example:Example: border: '2px dashed red'border: '2px dashed red'

borderBottomborderBottom borderborderParameterParameter

The bottom border of the payframe elements The bottom border of the payframe elements Example:Example: borderBottom: '4px dotted blue'borderBottom: '4px dotted blue'

borderColorborderColor borderborderParameterParameter

The border color of the payframe elements The border color of the payframe elements Example:Example: borderColor: '#b13af2'borderColor: '#b13af2'

borderLeftborderLeft borderborderParameterParameter

The left border of the payframe elements The left border of the payframe elements Example:Example: borderLeft: '4px dotted blue'borderLeft: '4px dotted blue'

borderRadiusborderRadius 4px4px The radius of the payframe element borders The radius of the payframe element borders Example:Example: borderRadius: '0px 30%'borderRadius: '0px 30%'

borderRightborderRight borderborderParameterParameter

The right border of the payframe elements The right border of the payframe elements Example:Example: borderRight: '4px dotted blue'borderRight: '4px dotted blue'

borderTopborderTop borderborderParameterParameter

The top border of the payframe elements The top border of the payframe elements Example:Example: borderTop: '4px dotted blue'borderTop: '4px dotted blue'

textColortextColor #32325d#32325d The text color of the payframe elements The text color of the payframe elements Example:Example: textColor: 'green'textColor: 'green'

backgroundColorbackgroundColor WhiteWhite The background color of the payframe elements The background color of the payframe elements Example:Example: backgroundColor: 'yellow'backgroundColor: 'yellow'

directiondirection ltrltr(Left to(Left toRight)Right)

The direction of the payframe element text The direction of the payframe element text Example:Example: direction: 'rlt'direction: 'rlt'

fontfont 18px18pxHelveticaHelveticaNeueNeue

The font of the payframe elements The font of the payframe elements Example:Example: font: '20px Times New Roman'font: '20px Times New Roman'

fontFamilyfontFamily fontfontParameterParameter

The font family of the payframe elements The font family of the payframe elements Example:Example: fontFamily: 'Arial'fontFamily: 'Arial'

fontSizefontSize fontfontParameterParameter

The font size of the payframe elements The font size of the payframe elements Example:Example: fontSize: '20px'fontSize: '20px'

fontSizeAdjustfontSizeAdjust fontfontParameterParameter

The font size adjust of the payframe elements The font size adjust of the payframe elements Example:Example: fontSizeAdjust: '0.58'fontSizeAdjust: '0.58'

Page 99 of 127

fontStretchfontStretch fontfontParameterParameter

The font stretch of the payframe elements The font stretch of the payframe elements Example:Example: fontStretch: 'condensed'fontStretch: 'condensed'

fontStylefontStyle fontfontParameterParameter

The font style of the payframe elements The font style of the payframe elements Example:Example: fontStyle: 'italic'fontStyle: 'italic'

fontSrcfontSrc nonenone An array of custom fonts to import. Accepts either a google font url, or a font-face style objectAn array of custom fonts to import. Accepts either a google font url, or a font-face style objectpointing to a hosted font file pointing to a hosted font file Example:Example: fontSrc: ['https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,700',fontSrc: ['https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,700',{'url':'https://test.com/testFont.woff','format':'woff', 'fontFamily': 'testFont', 'fontStyle: 'normal',{'url':'https://test.com/testFont.woff','format':'woff', 'fontFamily': 'testFont', 'fontStyle: 'normal','fontWeight': '400'}]'fontWeight': '400'}]

fontVariantfontVariant normalnormal The font variant of the payframe elements The font variant of the payframe elements Example:Example: fontVariant: 'small-caps'fontVariant: 'small-caps'

fontVariantAlternatesfontVariantAlternates normalnormal The font alternate variant of the payframe elements The font alternate variant of the payframe elements Example:Example: fontVariantAlternates: 'historical-forms'fontVariantAlternates: 'historical-forms'

fontVariantCapsfontVariantCaps normalnormal The font caps variant of the payframe elements The font caps variant of the payframe elements Example:Example: fontVariantCaps: 'all-small-caps'fontVariantCaps: 'all-small-caps'

fontVariantEastAsianfontVariantEastAsian normalnormal The font East Asian variant of the payframe elements The font East Asian variant of the payframe elements Example:Example: fontVariantEastAsian: 'ruby'fontVariantEastAsian: 'ruby'

fontVariantLigaturesfontVariantLigatures normalnormal The font ligatures variant of the payframe elements The font ligatures variant of the payframe elements Example:Example: fontVariantLigatures: 'common-ligatures'fontVariantLigatures: 'common-ligatures'

fontVariantNumericfontVariantNumeric normalnormal The font numeric variant of the payframe elements The font numeric variant of the payframe elements Example:Example: fontVariantNumeric: 'slashed-zero'fontVariantNumeric: 'slashed-zero'

fontWeightfontWeight normalnormal The font weight of the payframe elements The font weight of the payframe elements Example:Example: fontWeight: 'bold'fontWeight: 'bold'

letterSpacingletterSpacing normalnormal The letter spacing of the payframe elements The letter spacing of the payframe elements Example:Example: letterSpacing: '2px'letterSpacing: '2px'

lineHeightlineHeight normalnormal The line height of the payframe elements The line height of the payframe elements Example:Example: lineHeight: '80%'lineHeight: '80%'

marginmargin 3px3px The margin of the payframe elements The margin of the payframe elements Example:Example: margin: '10px 12px'margin: '10px 12px'

marginBottommarginBottom marginmarginParameterParameter

The bottom margin of the payframe elements The bottom margin of the payframe elements Example:Example: marginBottom: '8px'marginBottom: '8px'

marginLeftmarginLeft marginmarginParameterParameter

The left margin of the payframe elements The left margin of the payframe elements Example:Example: marginLeft: '8px'marginLeft: '8px'

marginRightmarginRight marginmarginParameterParameter

The right margin of the payframe elements The right margin of the payframe elements Example:Example: marginRight: '8px'marginRight: '8px'

marginTopmarginTop marginmarginParameterParameter

The top margin of the payframe elements The top margin of the payframe elements Example:Example: marginTop: '8px'marginTop: '8px'

opacityopacity 11 The opacity of the payframe elements The opacity of the payframe elements Example:Example: opacity: '0.8'opacity: '0.8'

outlineoutline nonenone The outline of the payframe elements The outline of the payframe elements Example:Example: outline: '2px dashed pink'outline: '2px dashed pink'

outlineColoroutlineColor outlineoutlineParameterParameter

The outline color of the payframe elements The outline color of the payframe elements Example:Example: outlineColor: 'green'outlineColor: 'green'

outlineStyleoutlineStyle outlineoutlineParameterParameter

The outline style of the payframe elements The outline style of the payframe elements Example:Example: outlineStyle: 'solid'outlineStyle: 'solid'

ParameterParameter DefaultDefault DescriptionDescription

Page 100 of 127

ParameterParameter Example:Example: outlineStyle: 'solid'outlineStyle: 'solid'

outlineWidthoutlineWidth outlineoutlineParameterParameter

The outline width of the payframe elements The outline width of the payframe elements Example:Example: outlineWidth: '4px'outlineWidth: '4px'

paddingpadding 10px 12px10px 12px The padding of the payframe elements The padding of the payframe elements Example:Example: padding: '15px'padding: '15px'

paddingBottompaddingBottom paddingpaddingParameterParameter

The bottom padding of the payframe elements The bottom padding of the payframe elements Example:Example: paddingBottom: '12px'paddingBottom: '12px'

paddingLeftpaddingLeft paddingpaddingParameterParameter

The left padding of the payframe elements The left padding of the payframe elements Example:Example: paddingLeft: '12px'paddingLeft: '12px'

paddingRightpaddingRight paddingpaddingParameterParameter

The right padding of the payframe elements The right padding of the payframe elements Example:Example: paddingRight: '12px'paddingRight: '12px'

paddingToppaddingTop paddingpaddingParameterParameter

The top padding of the payframe elements The top padding of the payframe elements Example:Example: paddingTop: '12px'paddingTop: '12px'

textShadowtextShadow nonenone The text shadow of the payframe elements The text shadow of the payframe elements Example:Example: textShadow: '2px 2px gray'textShadow: '2px 2px gray'

transitiontransition nonenone The transition of the payframe elements The transition of the payframe elements Example:Example: transition: 'width 2s'transition: 'width 2s'

mozAppearancemozAppearance nonenone The appearance of the payframe elements on Firefox The appearance of the payframe elements on Firefox Example:Example: mozAppearance: 'button'mozAppearance: 'button'

mozOsxFontSmoothingmozOsxFontSmoothing autoauto The font smoothing of the payframe elements in Firefox on Mac OS The font smoothing of the payframe elements in Firefox on Mac OS Example:Example: mozOsxFontSmoothing: 'grayscale'mozOsxFontSmoothing: 'grayscale'

mozTapHighlightColormozTapHighlightColor blackblack The tap highlight color of the payframe elements on Firefox The tap highlight color of the payframe elements on Firefox Example:Example: mozTapHighlightColor: 'red'mozTapHighlightColor: 'red'

webkitAppearancewebkitAppearance nonenone The appearance of the payframe elements on WebKit- and Blink-based browsers The appearance of the payframe elements on WebKit- and Blink-based browsers Example:Example: webkitAppearance: 'button'webkitAppearance: 'button'

webkitFontSmoothingwebkitFontSmoothing autoauto The font smoothing of the payframe elements in WebKit- and Blink-based browsers The font smoothing of the payframe elements in WebKit- and Blink-based browsers Example:Example: webkitFontSmoothing: 'antialiased'webkitFontSmoothing: 'antialiased'

webkitTapHighlightColorwebkitTapHighlightColor blackblack The tap highlight color of the payframe elements on WebKit-and Blink-based browsers The tap highlight color of the payframe elements on WebKit-and Blink-based browsers Example:Example: webkitTapHighlightColor: 'red'webkitTapHighlightColor: 'red'

cardImageAlignmentcardImageAlignment leftleft The placement of the card image in relation to the card number field The placement of the card image in relation to the card number field Example:Example: cardImageAlignment: 'right'cardImageAlignment: 'right' Options:Options: 'left', 'right', 'none''left', 'right', 'none'

cardIconAlignmentcardIconAlignment middlemiddle The alignment of the card image The alignment of the card image Example:Example: cardIconAlignment: 'left'cardIconAlignment: 'left' Options:Options: 'left', 'middle', 'right''left', 'middle', 'right'

cardImageSizecardImageSize halfhalf The size of the card image in the card number field The size of the card image in the card number field Example:Example: cardImageSize: 'full'cardImageSize: 'full' Options:Options: 'half', 'full''half', 'full'

cardImageAnimationcardImageAnimation enabledenabled The animation of the card image in the card number field upon successful validation The animation of the card image in the card number field upon successful validation Example:Example: cardImageAnimation: 'disabled'cardImageAnimation: 'disabled' Options:Options: 'enabled', 'disabled''enabled', 'disabled'

fieldAutoTabbingfieldAutoTabbing enabledenabled Whether to automatically tab to the next field upon field completion Whether to automatically tab to the next field upon field completion Example:Example: fieldAutoTabbing: 'disabled'fieldAutoTabbing: 'disabled' Options:Options: 'enabled', 'disabled''enabled', 'disabled'

cardIconSetcardIconSet 11 The cardIconSet to use for the cardImages. Chosen icon set will also be used for the acceptedThe cardIconSet to use for the cardImages. Chosen icon set will also be used for the acceptedcard type icons below card type icons below

ParameterParameter DefaultDefault DescriptionDescription

Page 101 of 127

Example:Example: cardIconSet: '2'cardIconSet: '2' Options:Options: '1', '2''1', '2'

cardTypeDisplaycardTypeDisplay middlemiddle The display alignment of the accepted card type images The display alignment of the accepted card type images Example:Example: cardTypeDisplay: 'left'cardTypeDisplay: 'left' Options:Options: 'left', 'middle', 'right', 'none''left', 'middle', 'right', 'none'

errorDisplayModeerrorDisplayMode labellabel The display mode of the field validation errors The display mode of the field validation errors Example:Example: errorDisplayMode: 'popup'errorDisplayMode: 'popup' Options:Options: 'label', 'popup''label', 'popup'

payframeHeightScalingpayframeHeightScaling staticstatic The scaling mode of the payframe's height The scaling mode of the payframe's height Example:Example: payframeHeightScaling: 'dynamic'payframeHeightScaling: 'dynamic' Options:Options: 'static', 'dynamic''static', 'dynamic'

fieldValidStylefieldValidStyle nonenone A subset of styling options for the fields when valid A subset of styling options for the fields when valid Example:Example: fieldValidStyle: {'color': 'green', 'borderColor': 'green'}fieldValidStyle: {'color': 'green', 'borderColor': 'green'} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

fieldErrorStylefieldErrorStyle nonenone A subset of styling options for the fields when invalid A subset of styling options for the fields when invalid Example:Example: fieldErrorStyle: {'color': 'red', 'borderColor': 'red'}fieldErrorStyle: {'color': 'red', 'borderColor': 'red'} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

fieldFocusStylefieldFocusStyle nonenone A subset of styling options for the fields when focused A subset of styling options for the fields when focused Example:Example: fieldFocusStyle: {'color': 'black', 'borderColor': 'blue'}fieldFocusStyle: {'color': 'black', 'borderColor': 'blue'} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

placeholderTextplaceholderText nonenone A list of custom labels to replace the default placeholder text. Alternatively, set a field to 'none' forA list of custom labels to replace the default placeholder text. Alternatively, set a field to 'none' forno placeholder text no placeholder text Example:Example: placeholderText: {'name': 'Bob Smith', 'number': '1234567891011121', 'expiry': 'none',placeholderText: {'name': 'Bob Smith', 'number': '1234567891011121', 'expiry': 'none','cvv': '123'}'cvv': '123'}

placeholderStyleplaceholderStyle nonenone A subset of styling options for the field placeholder text A subset of styling options for the field placeholder text Example:Example: placeholderStyle: {'color': 'darkgrey', 'fontSize': '15px'}placeholderStyle: {'color': 'darkgrey', 'fontSize': '15px'} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

placeholderValidStyleplaceholderValidStyle display:nonedisplay:none A subset of styling options for the field placeholder text when field is valid. Defaults to hidden A subset of styling options for the field placeholder text when field is valid. Defaults to hidden Example:Example: placeholderValidStyle: {'color': 'green', 'top': '0', 'fontSize': '10px}placeholderValidStyle: {'color': 'green', 'top': '0', 'fontSize': '10px} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

placeholderErrorStyleplaceholderErrorStyle display:nonedisplay:none A subset of styling options for the field placeholder text when field has input and is invalid. DefaultsA subset of styling options for the field placeholder text when field has input and is invalid. Defaultsto hidden to hidden Example:Example: placeholderErrorStyle: {'color': 'red', 'top': '0', 'fontSize': '10px}placeholderErrorStyle: {'color': 'red', 'top': '0', 'fontSize': '10px} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

placeholderFocusStyleplaceholderFocusStyle display:nonedisplay:none A subset of styling options for the field placeholder text when field is focused. Defaults to hidden A subset of styling options for the field placeholder text when field is focused. Defaults to hidden Example:Example: placeholderFocusStyle: {'color': 'blue', 'top': '0', 'fontSize': '10px}placeholderFocusStyle: {'color': 'blue', 'top': '0', 'fontSize': '10px} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

customErrorMessagescustomErrorMessages nonenone A list of custom messages to replace the default validation errors A list of custom messages to replace the default validation errors Example:Example: customErrorMessages: {'name': {'required':'Name Missing'}, 'number':customErrorMessages: {'name': {'required':'Name Missing'}, 'number':{'required':'Number Missing','checkLuhn':'Invalid card number'}}{'required':'Number Missing','checkLuhn':'Invalid card number'}} Options:Options: A full list of replaceable validation messages is below. A full list of replaceable validation messages is below.

errorLabelStyleerrorLabelStyle nonenone A subset of styling options for the error labels A subset of styling options for the error labels Example:Example: errorLabelStyle: {'color': 'red', 'fontFamily': 'sans-serif', 'fontSize': '12px'}errorLabelStyle: {'color': 'red', 'fontFamily': 'sans-serif', 'fontSize': '12px'} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

fieldLabelTextfieldLabelText nonenone A list of custom labels to replace the default field label text, if set. Alternatively, set a field to 'none'A list of custom labels to replace the default field label text, if set. Alternatively, set a field to 'none'for no field label for no field label Example:Example: fieldLabelText: {'name': 'Card Name', 'number': 'Card Number', 'expiry': 'none', 'cvv':fieldLabelText: {'name': 'Card Name', 'number': 'Card Number', 'expiry': 'none', 'cvv':'none'}'none'}

fieldLabelStylefieldLabelStyle display:nonedisplay:none A subset of styling options for the field labels. Defaults to hidden A subset of styling options for the field labels. Defaults to hidden Example:Example: fieldLabelStyle: {'color': 'black', 'fontSize': '16px}fieldLabelStyle: {'color': 'black', 'fontSize': '16px} Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.

ParameterParameter DefaultDefault DescriptionDescription

Page 102 of 127

Options:Options: A full list of secondary styling options is below. A full list of secondary styling options is below.ParameterParameter DefaultDefault DescriptionDescription

Form LayoutsForm Layouts

This is an example of how the different form layouts look with the getPayframeToken and addCard implementations. The examples areThis is an example of how the different form layouts look with the getPayframeToken and addCard implementations. The examples are

all using default styling, with the blue background for contrast.all using default styling, with the blue background for contrast.

IndexIndex getPayframeTokengetPayframeToken addCardaddCard

00

11

Card Icon SetsCard Icon Sets

IndexIndex IconsIcons

11

22

Customizable Validation ErrorsCustomizable Validation Errors

This is a full list of validation errors that can be overwritten with custom messages.This is a full list of validation errors that can be overwritten with custom messages.

Validation RuleValidation Rule FieldsFields DescriptionDescription

requiredrequired name, number, expiry, cvvname, number, expiry, cvv Checks that field is presentChecks that field is present

minLengthminLength name, number, cvvname, number, cvv Checks minumum length of fieldChecks minumum length of field

maxLengthmaxLength name, number, cvvname, number, cvv Checks maximum length of fieldChecks maximum length of field

containsCardNumbercontainsCardNumber namename Checks that the name field doesn't contain a PANChecks that the name field doesn't contain a PAN

validCardvalidCard numbernumber Checks that card number passes luhn checkChecks that card number passes luhn check

checkAcceptedCardTypecheckAcceptedCardType numbernumber Checks that card number type is one of the approved typesChecks that card number type is one of the approved types

validDatevalidDate expiryexpiry Checks that expiry is a valid dateChecks that expiry is a valid date

currentDatecurrentDate expiryexpiry Checks that card hasn't expiredChecks that card hasn't expired

Secondary Stying OptionsSecondary Stying Options

This is a full list of secondary styling options that can be set for particular fields or field states. This is a full list of secondary styling options that can be set for particular fields or field states. For some field states, setting a font familyFor some field states, setting a font family

or size that is different from the field's default can cause alignment issues on formLayout 0.or size that is different from the field's default can cause alignment issues on formLayout 0.

Page 103 of 127

ParameterParameter Applicable GroupingsApplicable Groupings DescriptionDescription

backgroundColorbackgroundColor fieldValid, fieldError, fieldFocus, errorLabelfieldValid, fieldError, fieldFocus, errorLabel The background color of the elementsThe background color of the elements

borderborder errorLabelerrorLabel The border of the elementsThe border of the elements

borderColorborderColor fieldValid, fieldError, fieldFocusfieldValid, fieldError, fieldFocus The border color of the elementsThe border color of the elements

borderRadiusborderRadius errorLabelerrorLabel The border radius of the elementsThe border radius of the elements

colorcolor allall The text color of the elementsThe text color of the elements

cursorcursor placeholder, placeholderValid,placeholder, placeholderValid,placeholderError, placeholderFocusplaceholderError, placeholderFocus

The cursor style when over the elementsThe cursor style when over the elements

displaydisplay placeholderValid, placeholderError,placeholderValid, placeholderError,placeholderFocus, fieldLabelplaceholderFocus, fieldLabel

The display of the elements. The display of the elements. Accepts 'none' or 'block'Accepts 'none' or 'block'

fontfont allall The font of the elementsThe font of the elements

fontFamilyfontFamily allall The font family of the elementsThe font family of the elements

fontSizefontSize allall The font size of the elementsThe font size of the elements

leftleft placeholder, placeholderValid,placeholder, placeholderValid,placeholderError, placeholderFocusplaceholderError, placeholderFocus

The left edge of the elementsThe left edge of the elements

lineHeightlineHeight errorLabel, fieldLabelerrorLabel, fieldLabel The line height of the elementsThe line height of the elements

marginmargin fieldLabelfieldLabel The margin of the elements. The margin of the elements. Can also be set via marginBottom,Can also be set via marginBottom,marginLeft, marginRight, and marginTopmarginLeft, marginRight, and marginTop

paddingpadding errorLabelerrorLabel The padding of the elements. The padding of the elements. Can also be set via paddingBottom,Can also be set via paddingBottom,paddingLeft, paddingRight, and paddingToppaddingLeft, paddingRight, and paddingTop

toptop placeholder, placeholderValid,placeholder, placeholderValid,placeholderError, placeholderFocusplaceholderError, placeholderFocus

The top edge of the elementsThe top edge of the elements

transitiontransition placeholderplaceholder The transition of the elementsThe transition of the elements

Additional FunctionsAdditional Functions

The MWPayframe also has some additional functions that can assist with your implementation.The MWPayframe also has some additional functions that can assist with your implementation.

mwCardTypeUpdatedmwCardTypeUpdated

This is a callback function that is called whenever the card number field is updated. It returns the cardType, cardBin, and whether theThis is a callback function that is called whenever the card number field is updated. It returns the cardType, cardBin, and whether the

card is valid (in that order) as parameters of the function.card is valid (in that order) as parameters of the function.

resetreset

This function is used to reset the payframe in order to process a second transaction. After processing your first transaction, you won't beThis function is used to reset the payframe in order to process a second transaction. After processing your first transaction, you won't be

able to submit the payframe again unless it is reset.able to submit the payframe again unless it is reset.

refreshrefresh

This function is used to refresh the styling of the payframe. If the payframe loads incorrectly or incompletely, you can use this function toThis function is used to refresh the styling of the payframe. If the payframe loads incorrectly or incompletely, you can use this function to

reapply the styling.reapply the styling.

Page 104 of 127

loadingloading

This is a callback function that is called when the payframe begins loading, after being deployed. You can use this to trigger a loadingThis is a callback function that is called when the payframe begins loading, after being deployed. You can use this to trigger a loading

animation or effect if you wish.animation or effect if you wish.

loadedloaded

This is a callback function that is called when the payframe has finished loading. You can use this to disable any loading animations youThis is a callback function that is called when the payframe has finished loading. You can use this to disable any loading animations you

may have started.may have started.

disabledisable

This function is used to disable the payframe object to stop it listening to messages from the payframe iframe. Use this function beforeThis function is used to disable the payframe object to stop it listening to messages from the payframe iframe. Use this function before

instantiating a new payframe, so that messages will be sent to the new payframe instead of the old payframe.instantiating a new payframe, so that messages will be sent to the new payframe instead of the old payframe.

Page 105 of 127

Handling a PostmessageHandling a Postmessage

If you prefer your application to not redirect after the Transparent iFrame completes a transaction, you have the option of making use ofIf you prefer your application to not redirect after the Transparent iFrame completes a transaction, you have the option of making use of

functionality. This functionality will enable the iframe to send the response it receives to its parent. functionality. This functionality will enable the iframe to send the response it receives to its parent.

// Create IE + others compatible event handlervar eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";var eventer = window[eventMethod];var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

// Listen to message from child windoweventer(messageEvent,function(e) { console.log('parent received message!: ',e.data);},false);

In the above example, replace console.log with code that is appropriate for

your solution, and optionally make use of the get string which is returned as e.data.

postMessagepostMessage

Page 106 of 127

Hash GenerationHash Generation

OverviewOverview

Verification hashes are used to prove to MW that the request(s) being sent have been generated by you, and not a malicious third partyVerification hashes are used to prove to MW that the request(s) being sent have been generated by you, and not a malicious third party

who may have discovered your merchantUUID and apiKey. Even if a malicious third party was to discover the request data you havewho may have discovered your merchantUUID and apiKey. Even if a malicious third party was to discover the request data you have

sent, they would not be able to create requests without knowing your API Passphrase. Your API Passphrase can be modified in the MWsent, they would not be able to create requests without knowing your API Passphrase. Your API Passphrase can be modified in the MW

administration interface.administration interface.

Transaction Type HashTransaction Type HashTo generate a transaction type hash, concatenate the following fields:To generate a transaction type hash, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + transactionAmounttransactionAmount + + transactionCurrencytransactionCurrency

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd10.00 10.00 AUDAUD

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd10.00 10.00 audaud

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Query Type HashQuery Type HashTo generate a query type hash, concatenate the following fields:To generate a query type hash, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + transactionIDtransactionID OROR transactionReferenceIDtransactionReferenceID

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd1336-20be3569-b600-11e6-b9c3-005056e109e01336-20be3569-b600-11e6-b9c3-005056e109e0

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd1336-20be3569-b600-11e6-b9c3-005056e109e01336-20be3569-b600-11e6-b9c3-005056e109e0

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Custom Fields Verification HashCustom Fields Verification HashTo generate the custom fields hash, concatenate, convert to lowercase & md5 the following fields:To generate the custom fields hash, concatenate, convert to lowercase & md5 the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + custom1custom1 + + custom2custom2 + + custom3custom3

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)Custom 1Custom 1Custom 2 Custom 2 Custom 3Custom 3

Page 107 of 127

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)custom 1custom 1custom 2 custom 2 custom 3custom 3

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Be sure to decode the custom fields first - e.g. "Be sure to decode the custom fields first - e.g. "Custom+Field+1Custom+Field+1" becomes "" becomes "Custom Field 1Custom Field 1".".

Batch File HashBatch File HashTo generate a batch file hash, simply generate the md5 checksum of the batch file:To generate a batch file hash, simply generate the md5 checksum of the batch file:

md5(batchFile)md5(batchFile)

As an example the md5 checksum of Batch.zip (containing your .csv) may be d41d8cd98f00b204e9800998ecf8427eAs an example the md5 checksum of Batch.zip (containing your .csv) may be d41d8cd98f00b204e9800998ecf8427e

Batch URL HashBatch URL HashTo generate a batch URL hash, concatenate the following fields:To generate a batch URL hash, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + batchNotifyURLbatchNotifyURL

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcdhttps://www.mydomain.com/sample/notify.phphttps://www.mydomain.com/sample/notify.php

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcdhttps://www.mydomain.com/sample/notify.phphttps://www.mydomain.com/sample/notify.php

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Batch Response HashBatch Response HashTo generate a batch Response hash, concatenate the following fields:To generate a batch Response hash, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + batchUUIDbatchUUID

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd1336583d3a953ce2d1336583d3a953ce2d

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd1336583d3a953ce2d1336583d3a953ce2d

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Web URL HashWeb URL HashTo generate a Web URL hash, concatenate the following fields:To generate a Web URL hash, concatenate the following fields:

Page 108 of 127

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + returnURLreturnURL + + notifyURLnotifyURL

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcdhttps://www.mydomain.com/return.php https://www.mydomain.com/return.php https://www.mydomain.com/notify.phphttps://www.mydomain.com/notify.php

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcdhttps://www.mydomain.com/return.php https://www.mydomain.com/return.php https://www.mydomain.com/notify.phphttps://www.mydomain.com/notify.php

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

302 Redirect and Post Notification Verification Hash302 Redirect and Post Notification Verification HashTransactionsTransactions

To generate a verification hash used for the 302 Redirect and POST notification, concatenate the following fields:To generate a verification hash used for the 302 Redirect and POST notification, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + hashSalthashSalt + + merchantUUIDmerchantUUID + + statusstatus + + transactionIDtransactionID OROR cardIDcardID

cardID is used for verifying an addCard responsecardID is used for verifying an addCard response

The status and transactionID (or cardID) fields are both contained in the Redirect URL. Once concatenated, convert everything toThe status and transactionID (or cardID) fields are both contained in the Redirect URL. Once concatenated, convert everything to

lowercase, and then md5 the string:lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)3x4mpl3s4lt3x4mpl3s4lt123456789abcd 123456789abcd ApprovedApproved1336-20be3569-b600-11e6-b9c3-005056b209e01336-20be3569-b600-11e6-b9c3-005056b209e0

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)3x4mpl3s4lt3x4mpl3s4lt123456789abcd 123456789abcd approvedapproved1336-20be3569-b600-11e6-b9c3-005056b209e01336-20be3569-b600-11e6-b9c3-005056b209e0

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Direct Debit AuthorizatoinsDirect Debit Authorizatoins

To generate a verification hash used for the 302 Redirect and POST notification, concatenate the following fields:To generate a verification hash used for the 302 Redirect and POST notification, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + hashSalthashSalt + + fingerprintfingerprint

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd3x4mpl3s4lt 3x4mpl3s4lt f0ab06f8d69d3dafa06a5abd45460acef0ab06f8d69d3dafa06a5abd45460ace

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd3x4mpl3s4lt 3x4mpl3s4lt f0ab06f8d69d3dafa06a5abd45460acef0ab06f8d69d3dafa06a5abd45460ace

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

BIN HashBIN HashTo generate a BIN hash, concatenate the following fields:To generate a BIN hash, concatenate the following fields:

Page 109 of 127

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + binbin

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd512346512346

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd512346512346

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Settlement HashSettlement HashTo generate a Settlement hash, concatenate the following fields:To generate a Settlement hash, concatenate the following fields:

md5(apiPassphrase)md5(apiPassphrase) + + merchantUUIDmerchantUUID + + settlementFromsettlementFrom + + settlementTosettlementTo

Once concatenated, convert everything to lowercase, and then md5 the string:Once concatenated, convert everything to lowercase, and then md5 the string:

Step 1Step 1 (concatenate): (concatenate):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd2017-05-01 2017-05-01 2017-05-022017-05-02

Step 2Step 2 (convert to lower): (convert to lower):

md5(apiPassphrase)md5(apiPassphrase)123456789abcd123456789abcd2017-05-01 2017-05-01 2017-05-022017-05-02

Step 3Step 3 (md5): (md5):

d941117d8774b12e218650542af6af56d941117d8774b12e218650542af6af56

Page 110 of 127

Test Credit CardsTest Credit Cards

Prior to using the test credit card numbers below, ensure that you are aware of the test provider you have been setup with. If you submit Prior to using the test credit card numbers below, ensure that you are aware of the test provider you have been setup with. If you submitincorrect test card numbers to your test provider, your transactions will be rejected.incorrect test card numbers to your test provider, your transactions will be rejected.

The test cards below are the only valid card numbers that can be used for testing with The test cards below are the only valid card numbers that can be used for testing with CBA, ANZ, NAB, Bendigo & BankWestCBA, ANZ, NAB, Bendigo & BankWest

Card NumberCard Number Expiry DateExpiry Date CVNCVN Card TypeCard Type

51234567890123465123456789012346 05/2105/21 123123 MasterCardMasterCard

49876543210987694987654321098769 05/2105/21 123123 VisaVisa

345678901234564345678901234564 05/2105/21 12341234 AmexAmex

3012345678901930123456789019 05/2105/21 123123 Diners ClubDiners Club

Using the following amounts will return the appropriate response. This particular test provider will change the response you receiveUsing the following amounts will return the appropriate response. This particular test provider will change the response you receive

based on the cent value supplied with the request.based on the cent value supplied with the request.

AmountAmount DescriptionDescription

XXX.00XXX.00 Transaction approvedTransaction approved

XXX.01XXX.01 Transaction declined - contact issuing bankTransaction declined - contact issuing bank

XXX.05XXX.05 Transaction declined – contact issuing bankTransaction declined – contact issuing bank

XXX.10XXX.10 Transaction could not be processedTransaction could not be processed

XXX.51XXX.51 Insufficient creditInsufficient credit

XXX.54XXX.54 Card has expiredCard has expired

XXX.68XXX.68 No reply from Processing HostNo reply from Processing Host

Anything ElseAnything Else Transaction could not be procssedTransaction could not be procssed

To test the new Mastercard 2 BIN series numbers, the following test card details can be used.To test the new Mastercard 2 BIN series numbers, the following test card details can be used.

Card TypeCard Type PAN (Card Number)PAN (Card Number)

MasterCardMasterCard 22230000000000072223000000000007

Use the following expiry dates will return the appropriate responses.Use the following expiry dates will return the appropriate responses.

Response CodeResponse Code NameName Expiry DateExpiry Date

00 Transaction approvedTransaction approved 05/1705/17

44 Transaction could not be processedTransaction could not be processed 04/2304/23

33 Time Out - contact issuing bankTime Out - contact issuing bank 08/2408/24

22 Transaction declined - contact issuing bankTransaction declined - contact issuing bank 05/1805/18

The test cards below are only valid card numbers that can be used for testing with The test cards below are only valid card numbers that can be used for testing with Westpac, St. George & Bank of Melbourne Westpac, St. George & Bank of Melbourne ..

Page 111 of 127

Card NumberCard Number Expiry DateExpiry Date CVNCVN DescriptionDescription

45647100000000044564710000000004 02/2902/29 847847 Visa ApprovedVisa Approved

51632000000000085163200000000008 08/2008/20 070070 MC ApprovedMC Approved

45647100000000124564710000000012 02/0502/05 963963 Visa ExpiredVisa Expired

45647100000000204564710000000020 05/2005/20 234234 Visa Low Funds ($10 credit limit)Visa Low Funds ($10 credit limit)

51632000000000165163200000000016 12/1912/19 728728 MC StolenMC Stolen

45647200000000374564720000000037 09/2909/29 030030 Visa Invalid CVV2Visa Invalid CVV2

376000000000006376000000000006 06/2006/20 23492349 AmexAmex

343400000000016343400000000016 01/2901/29 90239023 Amex RestrictedAmex Restricted

3643000000000736430000000007 06/2206/22 348348 DinersDiners

3643000000001536430000000015 08/2108/21 988988 Diners StolenDiners Stolen

All OthersAll Others N/AN/A N/AN/A All unknown cards are rejectedAll unknown cards are rejected

Page 112 of 127

302 Redirect302 Redirect

As an Asynchronous As an Asynchronous is not always reliable, an immediate response is also sent via a 302 redirect of the customer's is not always reliable, an immediate response is also sent via a 302 redirect of the customer's

browser to the specified returnURL.browser to the specified returnURL.

TransactionsTransactions

Responses are sent in the GET string of the returnURL specifiedResponses are sent in the GET string of the returnURL specified

The table below details the possible fields returned to the returnURL and their descriptions in regards to a transaction.The table below details the possible fields returned to the returnURL and their descriptions in regards to a transaction.

FieldField DescriptionDescription

statusstatus A textual representation of the transaction result. This can be: approved, declined, error, preauth. A textual representation of the transaction result. This can be: approved, declined, error, preauth. Example:Example: declined declined

referencereference If status is ‘error’, this will not be present. Otherwise, this contains a transactionID that can be used to query the transaction via anIf status is ‘error’, this will not be present. Otherwise, this contains a transactionID that can be used to query the transaction via anAPI call with the queryCard method API call with the queryCard method Example:Example: 1336-20be3569-b600-11e6-b9c3-005056b209e0 1336-20be3569-b600-11e6-b9c3-005056b209e0

hashhash A hash used to verify the status & transactionID, using the hashSalt A hash used to verify the status & transactionID, using the hashSalt Example:Example: b55552ff426d7e3d4885465d27ea0062 b55552ff426d7e3d4885465d27ea0062

codecode If status is ‘error’, this will contain an MW error code. This can be: -1, -2, -3, -4. See If status is ‘error’, this will contain an MW error code. This can be: -1, -2, -3, -4. See Example:Example: -1 -1

messagemessage If status is ‘error’, this will contain a textual representation of the error code. If status is ‘error’, this will contain a textual representation of the error code. Example:Example: 008%3AInvalid+merchantUUID+%2F+apiKey+combination 008%3AInvalid+merchantUUID+%2F+apiKey+combination

custom1custom1 The value of the The value of the parameter, URL Encoded. Will be blank if not provided. parameter, URL Encoded. Will be blank if not provided. Example:Example: custom1 custom1

custom2custom2 The value of the The value of the parameter, URL Encoded. Will be blank if not provided. parameter, URL Encoded. Will be blank if not provided. Example:Example: custom2 custom2

custom3custom3 The value of the The value of the parameter, URL Encoded. Will be blank if not provided. parameter, URL Encoded. Will be blank if not provided. Example:Example: custom3 custom3

TokenizationTokenization

Responses are sent in the GET string of the returnURL specifiedResponses are sent in the GET string of the returnURL specified

The table below details the possible fields returned to the returnURL and their description in regards to a tokenized transactionThe table below details the possible fields returned to the returnURL and their description in regards to a tokenized transaction

(addCard).(addCard).

HTTP POSTHTTP POST

Transaction responseCodeTransaction responseCode

Page 113 of 127

FieldField DescriptionDescription

statusstatus A textual representation of the transaction result. This can be: success, failed, error. A textual representation of the transaction result. This can be: success, failed, error. Example:Example: success success

responseMessageresponseMessage If status is ‘error’, this will not be present. Otherwise, this contains a message associated with the status (success orIf status is ‘error’, this will not be present. Otherwise, this contains a message associated with the status (success orfailed) of the response. failed) of the response. Example:Example: Operation%20successful Operation%20successful

messagemessage If status is ‘error’, this will contain a textual representation of the error code. See If status is ‘error’, this will contain a textual representation of the error code. See Example:Example: 008%3AInvalid+merchantUUID+%2F+apiKey+combination 008%3AInvalid+merchantUUID+%2F+apiKey+combination

hashhash A hash used to verify the status & cardID, using the hashSalt A hash used to verify the status & cardID, using the hashSalt Example:Example: 11b6a860e5bdf0bd91a503b42346ee1d 11b6a860e5bdf0bd91a503b42346ee1d

cardIDcardID A unique alphanumeric string returned by addCard, used to identify a specific card A unique alphanumeric string returned by addCard, used to identify a specific card Example:Example: MJKT20850598 MJKT20850598

cardKeycardKey A string used as an encryption/decryption key. This should only be used if you do NOT want Merchant Warrior handlingA string used as an encryption/decryption key. This should only be used if you do NOT want Merchant Warrior handlingyour key storage. This should be unique on a per-card basis. It’s used to encrypt the card when we store it. Every timeyour key storage. This should be unique on a per-card basis. It’s used to encrypt the card when we store it. Every timewe receive a process card request, the correct cardkey must also be provided – which is known only by you. we receive a process card request, the correct cardkey must also be provided – which is known only by you. Example:Example: qUKDIbq8idy5qsSf qUKDIbq8idy5qsSf

ivrCardIDivrCardID A unique alphanumeric string returned by addCard, used to identify a specific card used for IVR integration A unique alphanumeric string returned by addCard, used to identify a specific card used for IVR integration Example:Example: 10230271 10230271

custom1custom1 The value of the The value of the parameter. Will be blank if not provided. parameter. Will be blank if not provided. Example:Example: custom1 custom1

custom2custom2 The value of the The value of the parameter. Will be blank if not provided. parameter. Will be blank if not provided. Example:Example: custom2 custom2

custom3custom3 The value of the The value of the parameter. Will be blank if not provided. parameter. Will be blank if not provided. Example:Example: custom3 custom3

customHashcustomHash A hash used to verify the custom parameters A hash used to verify the custom parameters Example:Example: 65b172551b7d3a0706c0ce5330c98470 65b172551b7d3a0706c0ce5330c98470

Direct Debit AuthorizationsDirect Debit Authorizations

Responses are sent via Responses are sent via to the returnURL specified to the returnURL specified

Upon the completion of a successful DDA submission the client is redirected to the merchant’s website after 5 seconds or by clicking aUpon the completion of a successful DDA submission the client is redirected to the merchant’s website after 5 seconds or by clicking a

link to return to the merchant’s website. The client’s browser is redirected to the returnURL specified by the merchant and the responselink to return to the merchant’s website. The client’s browser is redirected to the returnURL specified by the merchant and the response

data is sent via data is sent via to the merchant’s returnURL. to the merchant’s returnURL.

The table below details the possible fields returned to the returnURL and their descriptions in regards to a DDA submission.The table below details the possible fields returned to the returnURL and their descriptions in regards to a DDA submission.

Transaction responseMessageTransaction responseMessage

POSTPOST

POSTPOST

Page 114 of 127

FieldField DescriptionDescription

responseCoderesponseCode The response code associated with the DDA submissionThe response code associated with the DDA submission

responseMessageresponseMessage A textual representation of the DDA submissionA textual representation of the DDA submission

hashhash A hash used to verify the status & transactionID (or cardID), using hashSalt. Refer to A hash used to verify the status & transactionID (or cardID), using hashSalt. Refer to

customerEmailcustomerEmail Email address associated with DDA submissionEmail address associated with DDA submission

paymentAccountBSBpaymentAccountBSB Account BSB associated with DDA submissionAccount BSB associated with DDA submission

paymentAccountNumberpaymentAccountNumber Account Number associated with DDA submissionAccount Number associated with DDA submission

custom1custom1 The value of the The value of the parameter. Will be blank if not provided.parameter. Will be blank if not provided.

custom2custom2 The value of the The value of the parameter. Will be blank if not provided.parameter. Will be blank if not provided.

custom3custom3 The value of the The value of the parameter. Will be blank if not provided.parameter. Will be blank if not provided.

customHashcustomHash A hash used to verify the custom parametersA hash used to verify the custom parameters

fingerprintfingerprint Unique fingerprint generated for each DDA submissionUnique fingerprint generated for each DDA submission

302 Redirect and POST302 Redirect and POSTNotification Verification HashNotification Verification Hash

Page 115 of 127

Response CodesResponse Codes

There are three possible types of responseCode:There are three possible types of responseCode:

<responsecode><responsecode> MeaningMeaning

< 0< 0 MW validation errorMW validation error

= 0= 0 Transaction/Operation was successfulTransaction/Operation was successful

> 0> 0 Transaction/Operation was declined or delayed by the provider or serviceTransaction/Operation was declined or delayed by the provider or service

If the responseCode is >= 0, the responseMessage field will either contain a preset error or, if applicable, the direct error response givenIf the responseCode is >= 0, the responseMessage field will either contain a preset error or, if applicable, the direct error response given

by the provider or MW Vault.by the provider or MW Vault.

Transaction responseCodeTransaction responseCodeIn the table below, the "Status" column shows that the only time money will have left the customer's account is when a responseCode ofIn the table below, the "Status" column shows that the only time money will have left the customer's account is when a responseCode of

0 is returned. The "Fees" column shows which transaction types have fees applied to them. No fees are ever applied to declines that0 is returned. The "Fees" column shows which transaction types have fees applied to them. No fees are ever applied to declines that

are caused by provider timeouts, provider errors (except valid declines), or MW declines (due to invalid data, etc).are caused by provider timeouts, provider errors (except valid declines), or MW declines (due to invalid data, etc).

StatusStatus CodeCode DescriptionDescription FeesFees

FailedFailed -4-4 Internal MW error (contact MW support)Internal MW error (contact MW support) NoNo

FailedFailed -3-3 One of the required fields was not submittedOne of the required fields was not submitted NoNo

FailedFailed -2-2 One of the submitted fields was invalidOne of the submitted fields was invalid NoNo

FailedFailed -1-1 Invalid authentication credentials suppliedInvalid authentication credentials supplied NoNo

SuccessSuccess 00 Transaction ApprovedTransaction Approved YesYes

FailedFailed 11 Transaction could not be processed (server error)Transaction could not be processed (server error) NoNo

FailedFailed 22 Transaction declined - contact issuing bankTransaction declined - contact issuing bank YesYes

FailedFailed 33 No reply from processing host (timeout)No reply from processing host (timeout) NoNo

FailedFailed 44 Card has expiredCard has expired YesYes

FailedFailed 55 Insufficient FundsInsufficient Funds YesYes

FailedFailed 66 Error communicating with bankError communicating with bank NoNo

FailedFailed 77 Bank rejected requestBank rejected request YesYes

FailedFailed 88 Bank declined transaction - type not supportedBank declined transaction - type not supported YesYes

FailedFailed 99 Bank declined transaction - do not contact bankBank declined transaction - do not contact bank YesYes

-- 1010 Transaction pendingTransaction pending NoNo

Token responseCodeToken responseCodeIn the table below, the "Status" column shows that the only time that an operation can complete on a customer's token id is when aIn the table below, the "Status" column shows that the only time that an operation can complete on a customer's token id is when a

Page 116 of 127

responseCode of 0 is returned.responseCode of 0 is returned.

StatusStatus CodeCode DescriptionDescription

FailedFailed -4-4 Internal MW error (contact MW support)Internal MW error (contact MW support)

FailedFailed -3-3 One of the required fields was not submittedOne of the required fields was not submitted

FailedFailed -2-2 One of the submitted fields was invalidOne of the submitted fields was invalid

SuccessSuccess 00 Operation SuccessfulOperation Successful

FailedFailed 11 Requested card has been removedRequested card has been removed

FailedFailed 22 Requested card has expiredRequested card has expired

Recurring responseCodeRecurring responseCodeIn the table below, the "Status" column shows that the only time a recurring operation is successful is when a responseCode of 0 isIn the table below, the "Status" column shows that the only time a recurring operation is successful is when a responseCode of 0 is

returned.returned.

StatusStatus CodeCode DescriptionDescription

FailedFailed -4-4 Internal MW error (contact MW support)Internal MW error (contact MW support)

FailedFailed -3-3 One of the required fields was not submittedOne of the required fields was not submitted

FailedFailed -2-2 One of the submitted fields was invalidOne of the submitted fields was invalid

SuccessSuccess 00 Operation SuccessfulOperation Successful

responseMessageresponseMessageAll MW validation errors will contain a three-digit code prefix at the beginning of the responseMessage. This code will allow you toAll MW validation errors will contain a three-digit code prefix at the beginning of the responseMessage. This code will allow you to

determine what specifically caused the MWE validation error to be returned, and allow you to deal with it accordingly.determine what specifically caused the MWE validation error to be returned, and allow you to deal with it accordingly.

Page 117 of 127

responseCoderesponseCode Code PrefixCode Prefix DescriptionDescription

-3-3 001001 Required field missingRequired field missing

-2-2 002002 Invalid amountInvalid amount

-2-2 003003 Invalid currencyInvalid currency

-2-2 004004 Invalid emailInvalid email

-2-2 005005 Invalid nameInvalid name

-2-2 006006 Invalid expiryInvalid expiry

-2-2 007007 Invalid card numberInvalid card number

-1-1 008008 Invalid auth detailsInvalid auth details

-1-1 009009 Invalid merchantUUIDInvalid merchantUUID

-1-1 010010 Invalid passphraseInvalid passphrase

-2-2 011011 Invalid transactionIDInvalid transactionID

-2-2 012012 Invalid transactionInvalid transaction

-2-2 013013 Currency mismatchCurrency mismatch

-2-2 014014 Invalid refund amountInvalid refund amount

-2-2 015015 Refund exceeds transaction amountRefund exceeds transaction amount

-2-2 016016 Transaction already reversedTransaction already reversed

-2-2 017017 Invalid verification hashInvalid verification hash

Partner responseCodePartner responseCodeIn the table below, the "Status" column shows that the only time that an operation can complete is when a responseCode of 0 isIn the table below, the "Status" column shows that the only time that an operation can complete is when a responseCode of 0 is

returned.returned.

addMerchant:addMerchant:

StatusStatus CodeCode DescriptionDescription

FailedFailed -4-4 Internal MW error (contact MW support)Internal MW error (contact MW support)

FailedFailed -3-3 One of the required fields was not submittedOne of the required fields was not submitted

FailedFailed -2-2 One of the submitted fields was invalidOne of the submitted fields was invalid

SuccessSuccess 00 Operation SuccessfulOperation Successful

checkMerchant:checkMerchant:

Page 118 of 127

StatusStatus CodeCode DescriptionDescription

FailedFailed -4-4 Internal MW error (contact MW support)Internal MW error (contact MW support)

FailedFailed -3-3 One of the required fields was not submittedOne of the required fields was not submitted

FailedFailed -2-2 Request reference is invalidRequest reference is invalid

FailedFailed -1-1 Invalid authentication credentials suppliedInvalid authentication credentials supplied

SuccessSuccess 00 Merchant createdMerchant created

FailedFailed 11 Merchant creation request pendingMerchant creation request pending

FailedFailed 22 Merchant creation request declinedMerchant creation request declined

FailedFailed 33 Merchant creation request failedMerchant creation request failed

Partner responseMessagePartner responseMessageAll MW validation errors will contain a three-digit code prefix at the beginning of the responseMessage. This code will allow you toAll MW validation errors will contain a three-digit code prefix at the beginning of the responseMessage. This code will allow you to

determine what specifically caused the MWE validation error to be returned, and allow you to deal with it accordingly.determine what specifically caused the MWE validation error to be returned, and allow you to deal with it accordingly.

responseCoderesponseCode Code PrefixCode Prefix DescriptionDescription

-3-3 001001 Required field missingRequired field missing

-2-2 004004 Invalid emailInvalid email

-2-2 005005 Invalid nameInvalid name

-1-1 008008 Invalid auth detailsInvalid auth details

-2-2 048048 Invalid timezoneInvalid timezone

-2-2 049049 Invalid country codeInvalid country code

-2-2 035035 All the other validation errorsAll the other validation errors

Transaction responseMessageTransaction responseMessageAll MW validation errors will contain a three-digit code prefix at the beginning of the responseMessage. This code will allow you toAll MW validation errors will contain a three-digit code prefix at the beginning of the responseMessage. This code will allow you to

determine what specifically caused the MWE validation error to be returned, and allow you to deal with it accordingly.determine what specifically caused the MWE validation error to be returned, and allow you to deal with it accordingly.

responseCoderesponseCode Code PrefixCode Prefix DescriptionDescription

-3-3 001001 Required field missingRequired field missing

-2-2 002002 Invalid amountInvalid amount

-2-2 003003 Invalid currencyInvalid currency

-2-2 004004 Invalid emailInvalid email

-2-2 005005 Invalid nameInvalid name

-2-2 006006 Invalid expiryInvalid expiry

-2-2 007007 Invalid card numberInvalid card number

-1-1 008008 Invalid auth detailsInvalid auth details Page 119 of 127

-1-1 008008 Invalid auth detailsInvalid auth details

-1-1 009009 Invalid merchantUUIDInvalid merchantUUID

-1-1 010010 Invalid passphraseInvalid passphrase

-2-2 011011 Invalid transactionIDInvalid transactionID

-2-2 012012 Invalid transactionInvalid transaction

-2-2 013013 Currency mismatchCurrency mismatch

-2-2 014014 Invalid refund amountInvalid refund amount

-2-2 015015 Refund exceeds transaction amountRefund exceeds transaction amount

-2-2 016016 Transaction already reversedTransaction already reversed

-2-2 017017 Invalid verification hashInvalid verification hash

-2-2 018018 Invalid rebillIDInvalid rebillID

-2-2 019019 Invalid rebill (rebill inactive)Invalid rebill (rebill inactive)

-2-2 020020 Invalid dateInvalid date

-2-2 021021 Invalid date periodInvalid date period

-2-2 022022 Invalid intervalInvalid interval

-2-2 023023 Invalid capture amountInvalid capture amount

-2-2 024024 Capture exceeds transaction amountCapture exceeds transaction amount

-2-2 025025 Invalid batchUUIDInvalid batchUUID

-2-2 026026 Field contains PANField contains PAN

-2-2 027027 Reference ID is not uniqueReference ID is not unique

-2-2 028028 Invalid integratorUUIDInvalid integratorUUID

-2-2 029029 Permission errorPermission error

-2-2 030030 Token errorToken error

-2-2 031031 Invalid BSBInvalid BSB

-2-2 032032 Invalid Account NumberInvalid Account Number

-2-2 033033 Invalid CSCInvalid CSC

22 034034 Transaction exceeds limitTransaction exceeds limit

-2-2 035035 Invalid fieldInvalid field

33 036036 No reply from processing hostNo reply from processing host

-4-4 037037 System ErrorSystem Error

-3-3 038038 Request syntax could not be parsedRequest syntax could not be parsed

-2-2 050050 Invalid accountTypeInvalid accountType

-2-2 051051 Invalid cardIDInvalid cardID

responseCoderesponseCode Code PrefixCode Prefix DescriptionDescription

Page 120 of 127

-2-2 052052 Invalid paymentFrequencyInvalid paymentFrequency

-2-2 053053 Invalid amountTypeInvalid amountType

-2-2 054054 Invalid countTypeInvalid countType

-2-2 055055 Invalid recurringPlanUUIDInvalid recurringPlanUUID

-2-2 056056 Invalid recurringUUIDInvalid recurringUUID

11 057057 Recurring bill is being processed. Try again.Recurring bill is being processed. Try again.

11 058058 Recurring bill is currently suspendedRecurring bill is currently suspended

-2-2 059059 recurringPlanName already existsrecurringPlanName already exists

11 060060 Recurring bill status is not suspendedRecurring bill status is not suspended

22 061061 Recurring plan will update shortly. Recurring bills still running.Recurring plan will update shortly. Recurring bills still running.

responseCoderesponseCode Code PrefixCode Prefix DescriptionDescription

Page 121 of 127

Developer FAQDeveloper FAQ

If you wish to download Merchant Warrior logos, the sample files for integration of various services provided by Merchant Warrior or theIf you wish to download Merchant Warrior logos, the sample files for integration of various services provided by Merchant Warrior or the

code for integration modules please visit code for integration modules please visit https://dox.merchantwarrior.com/https://dox.merchantwarrior.com/

Page 122 of 127