Response Codes

You're able to obtain additional information about a transaction by using Response Codes. These codes allow you to see why a transaction was refused or why it is being charged back. These codes allow you to not only have a have a greater understanding of refusal or chargeback reasons, but also allow for you to build auto-responses into your payment system. For example, if a transaction is refused because of insufficient funds, you could use this response to instruct your systems to retry the transaction a few days later.

To use this functionality, contact your Relationship or Corporate Support Manager. Alternatively, contact corporatesupport@worldpay.com.

Using Response Codes

There are two ways you can use these Response Codes: XML messages and order inquiries.

XML messages

You submit a transaction to Worldpay but it is refused, and you want to know why. If you have the Response Code functionality turned on, we'll provide you with a code that feeds into your systems. You can see this code in the Merchant Administration Interface as part of the Payment and Order Details information. An example response you can expect to receive looks like this (note the ISO20022TransactionReasonCode element):

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE paymentService PUBLIC "-//WorldPay/DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">

<paymentService version="1.4" merchantCode="MERCHANT_CODE">

  <notify>

    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->

      <payment>

        <paymentMethod>SEPA_DIRECT_DEBIT-SSL</paymentMethod>

        <amount value="100" currencyCode="EUR" exponent="2" debitCreditIndicator="credit"/>

        <lastEvent>REFUSED</lastEvent>

        <ISO20022TransactionReasonCode code="MD01" description="No mandate"/><!--This is the response code-->

      </payment>

      <journal journalType="REFUSED" description="No mandate">

        <bookingDate>

          <date dayOfMonth="21" month="07" year="2016"/>

        </bookingDate>

        <accountTx accountType="IN_PROCESS_SENT_FOR_AUTH" batchId="9">

          <amount value="100" currencyCode="EUR" exponent="2" debitCreditIndicator="debit"/>

        </accountTx>

      </journal>

    </orderStatusEvent>

  </notify>

</paymentService>

Order Enquiry

One of your customers has submitted a payment through Worldpay's Hosted Payment Pages and it was refused. You want to find out why. You're able to submit an order enquiry to Worldpay and we'll respond with a Response Code. It turns out that the customer has insufficient funds in their account; you're able to contact the customer and ask them to repeat the payment in a few days when they have money in their account. An example of an order enquiry response looks like this:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE paymentService PUBLIC "-//WorldPay/DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">

<paymentService version="1.4" merchantCode="MERCHANT_CODE"><!--Will contain the merchant code used in the request-->

  <reply>

    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->

      <payment>

        <paymentMethod>SEPA_DIRECT_DEBIT-SSL</paymentMethod>

          <amount value="100" currencyCode="EUR" exponent="2" debitCreditIndicator="credit"/>

          <lastEvent>REFUSED</lastEvent>

          <ISO20022TransactionReasonCode code="MD01" description="No mandate"/><!--This is the response code-->

      </payment>

      <date dayOfMonth="02" month="08" year="2016" hour="8" minute="41" second="0"/>

    </orderStatus>

  </reply>

</paymentService>

Response Codes and their descriptions

Response Code Description
AC01 Format of the account number specified is not correct
AC04 Account number specified has been closed
AC06 Account specified is blocked, prohibiting posting of transaction against it
AC13 Invalid debtor account type
AG01 Transaction forbidden on this type of account (formerly No Agreement)
AG02 Bank Operation code specified in the message is not valid for receiver
AM04 Amount of funds available to cover specified message amount is insufficient
AM05 Duplication
BE05 Party who initiated the message is not recognised by the end customer
CNOR Creditor Bank is not registered under this BIC in the CSM
DNOR Debtor Bank is not registered under this BIC in the CSM
FF01 File format incomplete or invalid
FF05 Local Instrument code is missing or invalid
MD01 No mandate
MD02 Mandated related information data required by the scheme is missing
MD06 Return of funds requested by end customer
MD07 End customer is deceased
MS02 Reason has not been specified by end customer
MS03 Reason has not been specified by agent
RC01 Bank Identifier code specified in the message has an incorrect format
RR01 Specification of the Debtor's account or unique identification needed for reasons of regulatory requirements is insufficient or missing
RR02 Specification of the Debtor's name and/or address needed for regulatory requirements is insufficient or missing
RR03 Specification of the creditor's name and/or address needed for regulatory requirements is insufficient or missing
RR04 Regulatory Reason
SL01 Due to specific service offered by the Debtor Agent

Note:  For a comprehensive list of ISO20022 codes and their descriptions, see the European Payments Council's Guidance on Reason Codes for SEPA Direct Debit R-Transactions.

Warning:  Not all banks in the SEPA region support SEPA Direct Debit. If a merchant tries to initiate a payment request to these banks, it will be refused. For a full registry of participating banks, look under SDD Core at this link: Registers of Participants in SEPA payment and payment related schemes