# Merchant Warrior API 2.0 ## Docs - Root [Getting Started](https://docs.merchantwarrior.dev/getting-started.md): - Root [Guides](https://docs.merchantwarrior.dev/guides.md): - Root > Guides [Xero Connection](https://docs.merchantwarrior.dev/xero.md): - Root > Guides [Xero Custom URL](https://docs.merchantwarrior.dev/xero-custom-url.md): - Root > Guides [wooCommerce PayID](https://docs.merchantwarrior.dev/woocommerce-payid.md): - Root > Guides [Middleware](https://docs.merchantwarrior.dev/middleware.md): - Root > Guides [Hostaway](https://docs.merchantwarrior.dev/hostaway.md): - Root > 3DS 2.0 [Introduction](https://docs.merchantwarrior.dev/3ds2-introduction.md): - Root > 3DS 2.0 [3DS 2 Authentication Flows](https://docs.merchantwarrior.dev/3ds2-authentication-flows.md): - Root > 3DS 2.0 [Step 3 - 3DS Method Data](https://docs.merchantwarrior.dev/3ds2-3ds-method-data.md): - Root > 3DS 2.0 [Step 5 - Challenge](https://docs.merchantwarrior.dev/step-5-challenge-2259803m0.md): - Root > PayLink [Introduction](https://docs.merchantwarrior.dev/paylink-introduction.md): - Root > PayID [Introduction](https://docs.merchantwarrior.dev/payid-introduction.md): - Root > PayTo [Introduction](https://docs.merchantwarrior.dev/payto-introduction.md): - Root > PayTo [Simulator](https://docs.merchantwarrior.dev/payto-simulator.md): - Root > PayTo [Certification](https://docs.merchantwarrior.dev/payto-certification.md): - Root > PayTo [Actions and Statuses](https://docs.merchantwarrior.dev/payto-actions.md): - Root > PayTo > Agreements [Agreements](https://docs.merchantwarrior.dev/payto-agreements.md): - Root > PayTo > Agreements [Notifications](https://docs.merchantwarrior.dev/payto-agreement-notifications.md): - Root > PayTo > Payments [Payments](https://docs.merchantwarrior.dev/payto-payments.md): - Root > PayTo > Payments [Notifications](https://docs.merchantwarrior.dev/payto-payment-notifications.md): - Root > Confirmation of Payee [Introduction](https://docs.merchantwarrior.dev/cop-introduction.md): - Root > Confirmation of Payee [Sandbox Simulations](https://docs.merchantwarrior.dev/cop-sandbox-simulations.md): - Root > POS [Introduction](https://docs.merchantwarrior.dev/pos-introduction.md): - Root > Web SDK [Introduction](https://docs.merchantwarrior.dev/websdk-introduction.md): - Root > Web SDK [Usage](https://docs.merchantwarrior.dev/websdk-usage.md): - Root > Web SDK [getAccessToken](https://docs.merchantwarrior.dev/websdk-getaccesstoken.md): - Root > Web SDK [Options](https://docs.merchantwarrior.dev/websdk-options.md): - Root > Web SDK [Initiate](https://docs.merchantwarrior.dev/websdk-initiate.md): - Root > Web SDK [Payframe Functionality](https://docs.merchantwarrior.dev/websdk-payframe-functionality.md): - Root > Web SDK [Middleware](https://docs.merchantwarrior.dev/websdk-middleware.md): - Root > Web SDK [addCard](https://docs.merchantwarrior.dev/websdk-addcard.md): - Root > Payframe [Introduction](https://docs.merchantwarrior.dev/payframe-introduction.md): - Root > Payframe [Usage](https://docs.merchantwarrior.dev/payframe-usage.md): - Root > Payframe [Constructor](https://docs.merchantwarrior.dev/payframe-constructor.md): - Root > Payframe [tdsCheck](https://docs.merchantwarrior.dev/payframe-tdscheck.md): - Root > Payframe [Additional Functions](https://docs.merchantwarrior.dev/payframe-additional-functions.md): - Root > Payframe [Styling](https://docs.merchantwarrior.dev/payframe-styling.md): - Root > Digital Wallets [Apple Pay Prerequisites](https://docs.merchantwarrior.dev/digital-wallets-apple-pay-prerequisites.md): - Root > Digital Wallets [Google Pay Prerequisites](https://docs.merchantwarrior.dev/digital-wallets-google-pay-prerequisites.md): - Root > Digital Wallets [Web SDK](https://docs.merchantwarrior.dev/digital-wallets-websdk.md): - Root > Digital Wallets [Manual Integration](https://docs.merchantwarrior.dev/digital-wallets-manual-integration.md): - Root > Token Payments [Introduction](https://docs.merchantwarrior.dev/token-payments-introduction.md): - Root > Token Payments [Key Management](https://docs.merchantwarrior.dev/token-payments-key-management.md): - Root > Batch [Introduction](https://docs.merchantwarrior.dev/batch-introduction.md): - Root > Batch [Card Batches](https://docs.merchantwarrior.dev/card-batches-2260733m0.md): - Root > Batch [Token Batches](https://docs.merchantwarrior.dev/token-batches-2260734m0.md): - Root > Batch [Direct Debit Batches](https://docs.merchantwarrior.dev/direct-debit-batches-2260735m0.md): - Root > Forter [Introduction](https://docs.merchantwarrior.dev/forter-introduction.md): - Root > Forter [Testing](https://docs.merchantwarrior.dev/forter-testing.md): - Root > Payouts [Introduction](https://docs.merchantwarrior.dev/payouts-introduction.md): - Root > Payouts [Sandbox Simulations](https://docs.merchantwarrior.dev/payouts-sandbox-simulations.md): - Root > Payouts [Notifications](https://docs.merchantwarrior.dev/payouts-notifications.md): - Root > Partner API [Introduction](https://docs.merchantwarrior.dev/partner-api-introduction.md): - Root > Notifications [Notifications](https://docs.merchantwarrior.dev/notifications.md): ## API Docs - Root > Direct API [getAccessToken](https://docs.merchantwarrior.dev/direct-api-getaccesstoken.md): The getAccessToken method generates a one time access token that can be used with various API methods - Root > Direct API [processCard](https://docs.merchantwarrior.dev/direct-api-processcard.md): - Root > Direct API [processAuth](https://docs.merchantwarrior.dev/direct-api-processauth.md): - Root > Direct API [processCapture](https://docs.merchantwarrior.dev/direct-api-processcapture.md): - Root > Direct API [processBatch](https://docs.merchantwarrior.dev/direct-api-processbatch.md): The processBatch method enables merchants to securely automate the processing of batch files - Root > Direct API [retrieveBatch (CSV)](https://docs.merchantwarrior.dev/direct-api-retrievebatch-csv.md): The retrieveBatch method is the method used to retrieve the results of a batch file that has been - Root > Direct API [retrieveBatch (JSON Response)](https://docs.merchantwarrior.dev/direct-api-retrievebatch-json-response.md): This method functions similarly to retrieveBatch, with the additional capability of returning responses in JSON format. To enable JSON response functionality, please contact the Merchant Warrior support team. - Root > Direct API [retrieveBatch (JSON Notify)](https://docs.merchantwarrior.dev/direct-api-retrievebatch-json-notify.md): - Root > Direct API [refundCard](https://docs.merchantwarrior.dev/direct-api-refundcard.md): - Root > Direct API [queryCard](https://docs.merchantwarrior.dev/direct-api-querycard.md): - Root > Direct API [processDDebit](https://docs.merchantwarrior.dev/direct-api-processddebit.md): - Root > Direct API [processDDebitAuth](https://docs.merchantwarrior.dev/direct-api-processddebitauth.md): - Root > Direct API [processVoid](https://docs.merchantwarrior.dev/direct-api-processvoid.md): - Root > Direct API [verifyCard](https://docs.merchantwarrior.dev/direct-api-verifycard.md): - Root > Direct API [queryDD](https://docs.merchantwarrior.dev/direct-api-querydd.md): 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 a transaction 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. - Root > Direct API [queryBIN](https://docs.merchantwarrior.dev/direct-api-querybin.md): The 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 ([BIN](https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_.28IIN.29)). - Root > Direct API [getSettlement](https://docs.merchantwarrior.dev/direct-api-getsettlement.md): The getSettlement method will return a compressed [Zip](https://en.wikipedia.org/wiki/Zip_(file_format)) archive that contains a [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) file with a list of transactions that have settled between the dates specified in the request. - Root > Direct API [checkEnrollment](https://docs.merchantwarrior.dev/direct-api-checkenrollment.md): This method is deprecated as it is for 3DS 1. Please see [3DS 2]([3DS 2](apidog://link/pages/2252027)) for steps to migrate to the most recent version of 3D Secure. - Root > Direct API [checkPARes](https://docs.merchantwarrior.dev/direct-api-checkpares.md): This method is deprecated as it is for 3DS 1. Please see [3DS 2](apidog://link/pages/2252027) for steps to migrate to the most recent version of 3D Secure. - Root > Direct API [addBlacklistedCard](https://docs.merchantwarrior.dev/direct-api-addblacklistedcard.md): - Root > Direct API [removeBlacklistedCard](https://docs.merchantwarrior.dev/direct-api-removeblacklistedcard.md): - Root > Direct API [queryBlacklistedCard](https://docs.merchantwarrior.dev/direct-api-queryblacklistedcard.md): - Root > Direct API [simulateNotify](https://docs.merchantwarrior.dev/direct-api-simulatenotify.md): Test your sandbox Notify URLs for Direct Debit, Chargebacks, EFT, and BPay. You should contact us during your implementation to set up your sandbox Notify URLs for each of the services you plan on implementing. - Root > Direct API [getSurcharge](https://docs.merchantwarrior.dev/direct-api-getsurcharge.md): Used to calculate the surcharge and total amount of a transaction, which can be shown to your customers before proceeding with the sale. - Root > 3DS 2.0 [Step 1 - getAccessToken](https://docs.merchantwarrior.dev/3ds2-step1.md): The getAccessToken method generates a one time access token that can be used with a 3D Secure 2 authentication request. It is then also used with the processCard method when you submit a transaction for processing. - Root > 3DS 2.0 [Step 2 - checkEnrollment](https://docs.merchantwarrior.dev/3ds2-step2.md): The checkEnrollment method determines if a card number is enrolled for 3D Secure 2 and provides a mechanism to determine if a fallback to 3D Secure 1 is required. - Root > 3DS 2.0 [Step 4 - checkTDSAuth](https://docs.merchantwarrior.dev/3ds2-step4.md): The checkTDSAuth method determines if the issuer opts for a frictionless or challenge flow. If the issuer opts for a frictionless flow you will receive a `threeDSToken` and you can move to [Step 7](#processCard3DS2). If the issuer requests a challenge flow, you should continue with [Step 5](#Challenge) and [Step 6](#checkPARes) below. - Root > 3DS 2.0 [Step 6 - checkPARes](https://docs.merchantwarrior.dev/3ds2-step6.md): The checkPARes method is used to verify the result the of the challenge. At this stage you can determine (based on the challenge result) if you would like to proceed with the transaction ([Step 7](#processCard3DS2)) or not. The PARes value submitted in this request should be the `cres` you received from Step [5](#Challenge). - Root > 3DS 2.0 [Step 7 - processCard](https://docs.merchantwarrior.dev/3ds2-step7.md): The processCard method is used to process a transaction with a 3D Secure 2 authentication attached to it. The 3D Secure 2 fields that need to be submitted with a transaction are the `tdsPayToken`, `tdsPayKey` and `threeDSToken`. - Root > 3DS 2.0 [Authorization Only processCard](https://docs.merchantwarrior.dev/3ds2-auth-only.md): ### Card Tokens - Root > PayLink [Generate PayLink](https://docs.merchantwarrior.dev/paylink-generate.md): - Root > PayID [Create ](https://docs.merchantwarrior.dev/payid-create.md): Used to register a new PayID with NPP. Currently only email PayIDs are supported. - Root > PayID [Transaction ](https://docs.merchantwarrior.dev/payid-transaction.md): The entire customer property is optional, and if not supplied, dummy data will be inserted for the user. This endpoint is only for use in the sandbox environment, and will be rejected in production. - Root > PayID [Get ](https://docs.merchantwarrior.dev/payid-get.md): Retrieve a single specific PayID. - Root > PayID [Update ](https://docs.merchantwarrior.dev/payid-update.md): Update the name associated with a PayID. - Root > PayID [Status](https://docs.merchantwarrior.dev/payid-status.md): Update a PayID's status. - Root > PayID [List ](https://docs.merchantwarrior.dev/payid-list.md): Retrieve a list of all PayIDs associated with your account. - Root > PayID [Refund](https://docs.merchantwarrior.dev/payid-refund.md): - Root > PayTo > Agreements [Create Agreement](https://docs.merchantwarrior.dev/payto-create-agreement.md): - Root > PayTo > Agreements [Get Agreement](https://docs.merchantwarrior.dev/payto-get-agreement.md): - Root > PayTo > Agreements [Amend Agreement](https://docs.merchantwarrior.dev/payto-amend-agreement.md): - Root > PayTo > Agreements [Amend Agreement Status](https://docs.merchantwarrior.dev/payto-amend-agreement-status.md): - Root > PayTo > Agreements [Recall Agreement Action](https://docs.merchantwarrior.dev/payto-recall-agreement-action.md): - Root > PayTo > Payments [Create Payment](https://docs.merchantwarrior.dev/payto-create-payment.md): - Root > PayTo > Payments [Get Payment](https://docs.merchantwarrior.dev/payto-get-payment.md): - Root > PayTo > Payments [Get Payment Status](https://docs.merchantwarrior.dev/payto-get-payment-status.md): - Root > PayTo > Payments [Search Payments](https://docs.merchantwarrior.dev/payto-search-payments.md): - Root > Confirmation of Payee [Validate](https://docs.merchantwarrior.dev/cop-validate.md): - Root > POS [processPOS](https://docs.merchantwarrior.dev/pos-processpos.md): - Root > POS [refundPOS](https://docs.merchantwarrior.dev/pos-refundpos.md): - Root > POS [voidPOS](https://docs.merchantwarrior.dev/pos-voidpos.md): - Root > POS [deregisterPOS](https://docs.merchantwarrior.dev/pos-deregisterpos.md): - Root > Payframe [processCard](https://docs.merchantwarrior.dev/payframe-processcard.md): These parameters are practically identical to the [Direct API processCard](apidog://link/endpoint/31056220) method. The major point of difference is that the card data fields are removed, and in their place the payframeToken and payframeKey parameters have been added. - Root > Payframe [processAuth](https://docs.merchantwarrior.dev/payframe-processauth.md): These parameters are practically identical to the [Direct API processAuth](apidog://link/endpoint/35598962) method. The major point of difference is that the card data fields are removed, and in their place the payframeToken and payframeKey parameters have been added. - Root > Digital Wallets [processCard](https://docs.merchantwarrior.dev/digital-wallets-processcard.md): The processCard method is the method used to perform a purchase request. This is a modified version of the [Direct API processCard](direct-api#processCard), with the payment card fields replaced by digitalWalletToken. - Root > Digital Wallets [addCard](https://docs.merchantwarrior.dev/digital-wallets-addcard.md): The addCard method is used to add a new card to the MW Vault. This is a modified version of the [Token Payments addCard](https://dox.merchantwarrior.com/token-payments#addcard) method, with the payment card fields replaced by digitalWalletToken. - Root > Digital Wallets [getMerchantSession](https://docs.merchantwarrior.dev/digital-wallets-getmerchantsession.md): ### Apple Pay - Root > Digital Wallets [decryptApplePayToken](https://docs.merchantwarrior.dev/digital-wallets-decryptapplepaytoken.md): This method is deprecated. Merchants are encouraged to send their token using a [processCard](#processCard) request. - Root > Token Payments [addCard](https://docs.merchantwarrior.dev/token-payments-addcard.md): - Root > Token Payments [removeCard](https://docs.merchantwarrior.dev/token-payments-removecard.md): - Root > Token Payments [cardInfo](https://docs.merchantwarrior.dev/token-payments-cardinfo.md): The cardInfo method is used to perform a query of an existing card. This method will return the information added via [addCard](#addcard) with the credit card number ([PAN](https://en.wikipedia.org/wiki/Payment_card_number)) truncated - Root > Token Payments [changeExpiry](https://docs.merchantwarrior.dev/token-payments-changeexpiry.md): - Root > Token Payments [processCard](https://docs.merchantwarrior.dev/token-payments-processcard.md): The processCard method is used to perform a purchase transaction using a Token ID that exists in the MW Vault - Root > Token Payments [processAuth](https://docs.merchantwarrior.dev/token-payments-processauth.md): The processAuth method is the method used to perform a [pre-authorization](https://en.wikipedia.org/wiki/Authorization_hold) transaction using an existing card (for capture request, refer to the standard [processCapture API method](apidog://link/endpoint/31056222)). 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, although this of course also validates cardID, cardKey & cardKeyReplace. - Root > Payouts [Create Payouts](https://docs.merchantwarrior.dev/payouts-create-payouts.md): Used to create a new payouts batch. Making this request will initiate the whole process, which includes debiting your nominated account for the full amount of all payouts in the batch, and sending payouts to all the nominated accounts. - Root > Payouts [Get Payout Status](https://docs.merchantwarrior.dev/payouts-get-payout-status.md): Used to retrieve the status of a payouts batch. - Root > Payouts [Resend Notifications](https://docs.merchantwarrior.dev/payouts-resend-notifications.md): Used to resend notifications for all payouts in a specified payouts batch. The notification(s) will be sent to your nominated notify URL. All notifications are chunked to 1000 payouts per request. If you have more payouts than this in your batch, you will receive multiple requests into your system. - Root > Payouts [Get Payout Transaction Status](https://docs.merchantwarrior.dev/payouts-get-payout-transaction-status.md): Used to retrieve the status of a payout transaction. - Root > Payouts [Get Payout Transaction Notify](https://docs.merchantwarrior.dev/payouts-get-payout-transaction-notify.md): Used to resend a notifications for a single payouts in a specified payouts batch. The notification will be sent to your nominated notify URL. - Root > Partner API [addMerchant](https://docs.merchantwarrior.dev/partner-api-addmerchant.md): The addMerchant method is the method used to perform a merchant creation request. - Root > Partner API [updateMerchant](https://docs.merchantwarrior.dev/partner-api-updatemerchant.md): - Root > Partner API [checkMerchant](https://docs.merchantwarrior.dev/partner-api-checkmerchant.md): - Root [processCard](https://docs.merchantwarrior.dev/hpp-processcard.md): Requests are generated via a form with the parameters below presented to the customer's browser.