Transaction Result Analysis

Transaction Approval

The SOAP message wrapping a transaction approval has been presented in the previous chapter together with an example. The transaction status report generated by the Gateway is contained in the ipgapi:IPGApiOrderResponse element and can be understood as the data returned by the Web Service operation. In the following, its elements – relative to the ipgapi:IPGApiOrderResponse super element – are described.

Note that always the full set of elements is contained in the response – however, some elements might be empty.

Path/NameXML Schema typeDescription
ipgapi:CommercialServiceProviderxs:stringIndicates your provider.
ipgapi:TransactionTimexs:stringThe time stamp which is set by the Gateway before returning the transaction approval.
ipgapi:ProcessorReferenceNumberxs:stringIn some cases, this element might be empty. It stores a number allowing the credit card processor to refer to this transaction. You do not need to provide this number in any further transaction. However, have that number ready, in case you detect any problems with your transaction and you want to contact support.
ipgapi:ProcessorResponseMessagexs:stringn case of an approval, this element contains either contains the response message provided by the authorisation system (e.g.
an auth code) or in case there is no such message, the string:
Function performed error-free
ipgapi:ProcessorResponseCodexs:stringThe response code from the credit card processor
ipgapi:ErrorMessagexs:stringThis element is empty in case of an approval.
ipgapi:FraudScorexs:intThis element contains the fraud score of the transaction, if the Store is activated for the Fraud Detect product.
ipgapi:OrderIdxs:stringThis element contains the order ID. For Sale, PreAuth, ForceTicket, and Credit transactions, a new order ID is returned. For PostAuth, Return, and Void transactions, supply this number in the v1:OrderId
element for making clear to which transaction you refer. The ipgapi:OrderId element of a transaction approval to a PostAuth, Return, or Void transaction simply returns the order ID, such a transaction has referred to.
ipgapi:ApprovalCodexs:stringStores the approval code the transaction processor has created for this transaction. You do not need to provide this code in any
further transaction. However, have that number ready, in case you detect any problems with your transaction and you want to contact support.
ipgapi:AVSResponsexs:stringReturns the address verification system (AVS) response.
ipgapi:TDatexs:stringStores the TDate you have to supply when voiding this transaction (which is only possible for Sale and PostAuth transactions). In this case, pass its value in the v1:TDate element of the Void transaction you want to build.
ipgapi:TransactionResultxs:stringStores the transaction result which is always set to APPROVED in case of an approval or WAITING in case the final result is not yet
clear and will be updated at a later point.
ipgapi:TerminalIDxs:stringThe Terminal ID used for this transaction.
ipgapi:PaymentTypexs:stringThe payment type used for this transaction.
ipgapi:Brandxs:stringThe brand of the card used for this transaction.
ipgapi:ConvenienceFeexs:decimalThe Convenience fee value, returned in the response if you have this feature configured and this is applicable for Sale transaction.
ipgapi:Countryxs:stringThe country where the card has been issued that has been used for this transaction.
ipgapi:SecurePlusResponsexs:stringThe response from UnionPay SecurePlus authentication
ipgapi:SchemeTransactionIdxs:stringReturned in the response by Mastercard for stored credentials transactions.
ipgapi:MerchantAdviceCodeIndicatorxs: string2maxThe transaction response code for declines for authorizations on Nashville
ipgapi:UpdatedPrimaryAccountNumberxs:stringThe response from Mastercard and Visa Account Updater when stored credentials are not managed by the Gateway
ipgapi:UpdatedExpirationDatexs:stringThe response from Mastercard and Visa Account Updater when stored credentials are not managed by the Gateway
ipgapi:UpdatedAccountStatusxs:stringThe response from Mastercard and Visa Account Updater when stored credentials are not managed by the Gateway; available values:
ACCOUNT_CHANGED
ACCOUNT_CLOSED
EXPIRY_CHANGED
CONTACT_CARDHOLDER
ipgapi:UpdatedAccountErrorCodexs:stringThe response from Mastercard Account Updater when stored credentials are not managed by the Gateway
ipgapi:RedirectUrlxs:string100maxThe URL included in the response from the Gateway, where you are supposed to redirect the consumer using China domestic or Boleto payment methods to, so they can continue with the transaction processing
ipgapi:StandinResponseDetailsxs:stringAuthentication details returned from Standin instruction payment transaction; available for Indian market only
ipgapi:Secure3DResponse/CardHolderInfoxs:stringA text optionally provided by the issuer to the cardholder during frictionless transaction that was not authenticated by the ACS.
ipgapi:MerchantAdviceMessagexs:stringAdditional information provided by Issuer in case specific card types have been used. Currently available values:
• “Single-use virtual card number presented”
• “Non-reloadable prepaid card presented”
ipgapi:ProcessorAssociationResponseMessagexs:stringA text provided by the authorisation system that presents details of the transaction status; applicable for Mastercard and Visa.
Example value: ‘Partial Approval’
ipgapi: AccountNameMatchResponsexs:stringField for Visa Account Name Inquiries; a value consists of 5 characters representing the status of the billing name match:
• 1st letter for FullName
• 2nd for FirstName
• 3rd for MiddleName
• 4th for LastName
with possible values:
• M for match
• P for partial match
• N for no match
and a 5th letter as NameVerificationIndicator
with possible values:
• P for performed
• S not supported
• E exception (not perfomed)
Example response value: 'MNPMP'
Transaction Failure

As shown in the previous chapter, a SOAP fault message, resulting from the credit card processor having failed to process your transaction, contains an ipgapi:IPGApiOrderResponse element passed as child of a SOAP detail element. Note that its sub elements are exactly the same as in the transaction approval case.

Their meaning in the failure case is described below:

Path/NameXML Schema typeDescription
ipgapi:CommercialServiceProviderxs:stringIndicates your provider.
ipgapi:TransactionTimexs:stringThe time stamp which is set by the Gateway before returning the transaction failure. The format is Unix time (https://en.wikipedia.org/wiki/Unix_time).
ipgapi:ProcessorReferenceNumberxs:stringIn some cases, this element might be empty. Stores a number allowing the credit card processor to refer to this transaction. You do not need to provide this number in any further transactions. However, have that number ready, in case you detect any problems with your transaction and you want to contact support.
ipgapi:ProcessorResponseMessagexs:stringStores the error message the credit card processor has returned. For instance, in case of an expired credit card this might be: Card expiry date exceeded
ipgapi:ProcessorResponseCodexs:stringThe response code from the credit card processor
ipgapi:ProcessorApprovalCodexs:stringThe approval code from the credit card processor
ipgapi:ProcessorReceiptNumberxs:stringThe receipt number from the credit card processor
ipgapi:ProcessorTraceNumberxs:stringThe trace number from the credit card processor
ipgapi:ErrorMessagexs:stringStores the error message returned by the Gateway. It is always encoded in the format SGS-XXXXXX: Message with XXXXXX being a six digit error code and Message describing the error (this description might be different from the processor response message). For instance, in the above example the error
message SGS-000033: Card expiry date exceeded is returned. Make sure to have the error code and message ready when contacting support.
ipgapi:OrderIdxs:stringStores the order ID. In contrast to an approval, this order ID is never required for any further transaction, but needed for tracing the cause of the error. Hence, make sure to have it ready when contacting support.
ipgapi:ApprovalCodexs:stringThis element is empty in case of a transaction failure.
ipgapi:AVSResponsexs:stringReturns the address verification system (AVS) response.
ipgapi:TDatexs:stringStores the TDate. Similar to the order ID, the TDate is never required for any further transaction, but needed for tracing the error cause. Hence, make sure to have it ready when contacting support.
ipgapi:TransactionResultxs:stringIn the failure case, there are three possible values:
• DECLINED
• FRAUD
• FAILED
DECLINED is returned in case the credit card processor does not accept the transaction, e.g. when finding the customer’s funds not to be sufficient. FRAUD is returned in case a fraud attempt is assumed by the Gateway. If
an internal gateway error should occur, the returned value is FAILED.
ipgapi:TerminalIDxs:stringThe Terminal ID used for this transaction.
ipgapi:TransactionDeclineReasonxs:stringProvides further advise how to handle the transaction decline.
Examples of the values:
• “Retry Later”
• “No Updated Credentials, Do not retry”
• “Authentication may improve likely
hood of approval”
• “Suspected fraud, do not retry”
ipgapi:MerchantAdviceMessagexs:stringAdditional information provided by Issuer in case specific card types have been used. Currently available values:
• “Single-use virtual card number
presented”
• “Non-reloadable prepaid card
presented”
ipgapi:ProcessorAssociationResponseMessagexs:stringA text provided by the authorisation system that presents details of the transaction status; applicable for Mastercard and Visa.
Example value: “Partial Approval”
ipgapi:AccountNameMatchResponsexs:stringField for Visa Account Name Inquiries; a value consists of 5 characters
representing the status of the billing name match:
• 1st letter for FullName
• 2nd for FirstName
• 3rd for MiddleName
• 4th for LastName
with possible values:
• M for match
• P for partial match
• N for no match
and a 5th letter as NameVerificationIndicator
with possible values:
• P for performed
• S not supported
• E exception (not perfomed)
Example response value: 'MNPMP'

Want a quick overview?