If you are using pre-authorisation and need to complete a transaction, or wish to refund an existing completed transaction there are two ways of doing this: either directly via the Customer Management System, or remotely without navigating the Customer Management System.
The advantages of using the Customer Management System are that it requires minimal knowledge to operate and allows you to view transaction details prior to completing or refunding a transaction to ensure you're dealing with the correct transaction. However these steps can be time-consuming and, particularly in the case of post-authorising a pre-authorised transaction, you may have collected all the information you require via:
For details on callback please see http://support.worldpay.com/kb/reference/faqs/callback_faqs.html. To include additional information in the payment confirmation email please contact your local Technical Support team.
Once you have the details of the transaction and are certain about which action you wish to perform on it these remote administration facilities can be used to save time.
You will need an installation ID set up for this type of remote administration. Typically this is a Select Junior installation (but could be a Select Pro one), which will be used independently of your existing web site. It will need to be set up with a "remote authorisation password" which you can specify when asking for this facility to be set up by contacting integrations@worldpay.com. Note this is limited to 20 characters.
If you already have this facility set up as detailed in http://support.worldpay.com/kb/reference/faqs/remote_futurepay.html, you can already use everything detailed in this document.
Please note that these facilities can be used regardless of the integration method used to submit the original transaction to WorldPay.
If you suspect that the remote authorisation password referred to below has been compromised then please contact your local Technical Support team at the earliest opportunity so that it can be changed.
The new installation ID and remote authorisation password are referred to below as XXXXX and YYYYY respectively. These will need to be changed to the installation ID and password provided by your local Technical Support team.
The HTML examples are shown here only as one method of submitting the data to WorldPay as a POST. You can use either POST or GET for submitting these details to WorldPay, generated using any server-side scripting language.
<html>
<body>
<h1>Post-authorise a pre-authorised transaction</h1>
<br>This allows you to complete only those transactions you consider appropriate.
<form action="https://select.worldpay.com/wcc/itransaction" method="post">
<input type="hidden" name="instId" value="XXXXX">
<input type="hidden" name="op" value="postAuth-full">
<input type="hidden" name="authPW" value="YYYYY">
<input type="hidden" name="authMode" value="O">
<br>Enter the transaction ID to complete:
<input type="text" name="transId" value="" size="10">
<input type="submit" name="postAuth" value="Post-Authorise">
</form>
</body>
</html>
If you require further details about pre-authorisation or wish to request it, please see http://support.worldpay.com/kb/user_guides/fighting_fraud/ffg1050.html.
Assuming a pre-authorised transaction is successfully post-authorised using this code you should see a response like:
A,ZZZZZZZZ,cardbe.msg.testSuccess
(assuming it was a post-authorisation of test transaction ZZZZZZZZ.)
If this was for a live transaction then the response would be like:
A,ZZZZZZZZ,cardbe.msg.authorised
Please note the following:
A then the post-authorisation failed. The authorisation message will explain why it failed. Examples of this include:
| Response string | Meaning |
N,-1,PMPPI.invalidStatus
|
Attempting to post-authorise a transaction which has already been successfully post-authorised |
N,-1,PMPPI.invalidTransID
|
No transId specified |
N,-1,PMPPI.notFound
|
Attempting to post-authorise a very recently pre-authorised transaction. The only solution to this, assuming you are sending the correct value of transId, is to wait before trying again. This may involve a change in your code, either to delay or retry the post-authorisation of each transaction, or to post-authorise all pre-authorised transactions on a periodic basis. |
N,-1,PMPPSU.accProblem
|
The instId you are using for remote post-processing has not been configured correctly. Please contact customeramendments@worldpay.com, quoting your Company ID and the instId you are using to resolve the issue. |
<html>
<body>
<h1>Issuing a full or partial refund</h1>
<p>This allows individual transactions to be refunded either fully or in part. Partial refunds must be issued in the currency the shopper originally used to pay.
<form action="https://select.worldpay.com/wcc/itransaction" method="post">
<input type="hidden" name="authPW" value="YYYYY">
<input type="hidden" name="instId" value="XXXXX">
<input type="hidden" name="cartId" value="Refund">
<p>Refund type:
<select name="op">
<option value="refund-full">Full</option>
<option value="refund-partial">Partial</option>
</select>
<p>Enter the Transaction ID to refund:
<input type="text" name="transId" value="" size="10">
<p>Enter the amount (partial refund only):
<input type="text" name="amount" value="" size="10">
<p>Enter the currency (partial refund only):
<input type="text" name="currency" value="" size="3">
<input type="submit" name="refund" value="Issue Refund">
</form>
</body>
</html>
Assuming a transaction has been successfully refunded (in part or full) you should see a response like:
A,RRRRRRRR,cardbe.msg.testSuccess
(where RRRRRRRR is the new refund transaction of the original test transaction.)
If this was for a live transaction then the response would be like:
A,ZZZZZZZZ,cardbe.msg.authorised
If you look at the details of the refund transaction on the Customer Management System you will see the cartId for the new transaction set to Refund (unless you have changed the value of cartId in the example code above).
Please note the following:
A (and the value of RRRRRRRR is instead set to -1), then the refund transaction failed. The authorisation message will explain why it failed. Examples of this include:
| Response string | Meaning |
N,-1,PMPPI.invalidStatus
|
Attempting to refund a pre-authorised transaction which has not been post-authorised |
N,-1,PMPPI.wrongCurrency
|
The specified currency does not match that used by the shopper in the original transaction. |
N,-1,transEng.procproc.excessAmount
|
Attempting a partial or full refund on a transaction which has already been fully refunded |
N,-1,PMPPI.notFound
|
Attempting to refund a very recently full or post-authorised transaction. The only solution to this, assuming you are sending the correct value of transId, is to wait before trying again. This may involve a change in your code, either to delay or retry the refund of each transaction, or to refund all transactions on a periodic basis. |
You must use https:// URLs.
If you are using an installation ID with an MD5 secret then signatureFields and signature must be used (as detailed on http://support.worldpay.com/kb/integration_guides/junior/integration/help/tech_notes/sjig_tn_009.html but specific to the token you're actually using above) before you can submit the details to WorldPay successfully. Failure to do this - even if all the other parameters are correct - will result in the following:
N,-1,SPTS.sigNotVerified
If you are using FuturePay then the same Remote Administration installation ID can be used for remote FuturePay administration. See http://support.worldpay.com/kb/reference/faqs/remote_futurepay.html for more details.
If you require a customised response to be returned for remote post-authorisations and remote refunds please contact your local Technical Support team.
END
Last updated: 08 February 2006