Magensa, LLC I 1710 Apollo Court I Seal Beach, CA 90740 I Phone: (562) 546-6400 I Technical Support: (888) 624-8350 www.magtek.com MPPGv3 Magensa Payment Protection Gateway version 3.0 Programmer’s Reference Manual November 2020 Document Number: D998200191-40 REGISTERED TO ISO 9001:2015
65
Embed
Programmer’s Reference Manual - MagTek, Inc....Programmer’s Reference Manual March 11, 2019 Manual Part Number: D998200191-30 REGISTERED TO ISO 9001:2015 MPPGv3| Magensa Payment
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Magensa, LLC I 1710 Apollo Court I Seal Beach, CA 90740 I Phone: (562) 546-6400 I Technical Support: (888) 624-8350 www.magtek.com
MPPGv3 Magensa Payment Protection Gateway version 3.0
INFORMATION IN THIS PUBLICATION IS SUBJECT TO CHANGE WITHOUT NOTICE AND MAY CONTAIN TECHNICAL INACCURACIES OR GRAPHICAL DISCREPANCIES. CHANGES OR IMPROVEMENTS MADE TO THIS PRODUCT WILL BE UPDATED IN THE NEXT PUBLICATION RELEASE. NO PART OF THIS DOCUMENT MAY BE REPRODUCED OR TRANSMITTED IN ANY FORM OR BY ANY MEANS, ELECTRONIC OR MECHANICAL, FOR ANY PURPOSE, WITHOUT THE EXPRESS WRITTEN PERMISSION OF MAGTEK, INC. MagTek®, MagnePrint®, and MagneSafe® are registered trademarks of MagTek, Inc. Magensa™ is a trademark of MagTek, Inc. DynaPro™ and DynaPro Mini™, are trademarks of MagTek, Inc. ExpressCard 2000 is a trademark of MagTek, Inc. IPAD® is a trademark of MagTek, Inc. IntelliStripe® is a registered trademark of MagTek, Inc. AAMVA™ is a trademark of AAMVA. American Express® and EXPRESSPAY FROM AMERICAN EXPRESS® are registered trademarks of American Express Marketing & Development Corp. D-PAYMENT APPLICATION SPECIFICATION® is a registered trademark to Discover Financial Services CORPORATION MasterCard® is a registered trademark and PayPass™ and Tap & Go™ are trademarks of MasterCard International Incorporated. Visa® and Visa payWave® are registered trademarks of Visa International Service Association. MAS-CON® is a registered trademark of Pancon Corporation. Molex® is a registered trademark and PicoBlade™ is a trademark of Molex, its affiliates, related companies, licensors, and/or joint venture partners ANSI®, the ANSI logo, and numerous other identifiers containing "ANSI" are registered trademarks, service marks, and accreditation marks of the American National Standards Institute (ANSI). ISO® is a registered trademark of the International Organization for Standardization. UL™ and the UL logo are trademarks of UL LLC. PCI Security Standards Council® is a registered trademark of the PCI Security Standards Council, LLC. EMV® is a registered trademark in the U.S. and other countries and an unregistered trademark elsewhere. The EMV trademark is owned by EMVCo, LLC. The Contactless Indicator mark, consisting of four graduating arcs, is a trademark owned by and used with permission of EMVCo, LLC. The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by MagTek is under license. Google Play™ store, Google Wallet™ payment service, and Android™ platform are trademarks of Google Inc. Apple Pay®, iPhone®, iPod®, Mac®, and OS X® are registered trademarks of Apple Inc., registered in the U.S. and other countries. iPad™ is a trademark of Apple. Inc. App StoreSM is a service mark of Apple Inc., registered in the U.S. and other countries. IOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used by Apple Inc. under license. Microsoft®, Windows®, and .NET® are registered trademarks of Microsoft Corporation. All other system names and product names are the property of their respective owners.
Purpose of the document The purpose of this document is to describe the various operations available in MPPG v3 and their required or optional input & output parameters. It also provides sample SOAP request & response as reference for client developers. MPPGv3 enables clients to easily integrate encrypted & secure payment data from MagTek devices into their payment applications. This helps mitigate the risks associated with transmission of PCI-sensitive payment data to third-party (or ‘target’) service providers. Clients call specific MPPGv3 operations (based on payment mode e.g. card-swipe, EMV, manual entry, reference-id, token etc.) with corresponding encrypted & secure payment data and transaction information. The service, upon successful authentication of the client credentials, decrypts the payment data, builds the transaction request, sends it to the third-party service provider, parses the response and returns the results of the operation to the client. Please check if your payment processor is supported by MPPGv3 as a third-party service provider. For SALE and AUTHORIZE transactions, Partial Authorization is set to TRUE. This will cause the card issuing bank to authorize up to the amount remaining in the cardholder’s account, even if this is less than the amount requested. The remainder must be collected by another means. Therefore, it is important to always check “AuthorizedAmount” in the output. It may be less than “Amount” requested in the input. For more information regarding the behavior of Partial Authorization or to disable it, please contact [email protected]. All transaction-related information should be provided in the TransactionInput element. And any information other than processor name, transaction type and amount should be provided as key-value pair elements in TransactionInputDetails. The building of transaction requests is template-driven through use of tags and therefore if the payment processor requires this data, the client will have to provide key-value pairs such as key = “LocalDateTime”, value = “2017-05-11 12:00:00Z”. MPPGv3 will replace the key-tag of “LocalDateTime” in the template with the value provided as part of building the request. Please consult your payment processor API for the correct key string-literals. A unique, new feature introduced in MPPGv3 is the ability to send a “batch” of requests in a single call to the service. As a result, all MPPGv3 service operations take in an array of requests and return an array of responses. The service processes these input requests serially and a specific index/element of response corresponds to the specific index/element of request. All responses have an MPPGv3WSFault element and in the case of an error or exception raised for that particular request, the details will be available in the corresponding MPPGv3Fault element. When successful, the value of this MPPGv3WSFault element will be null. In order for Magensa to call the third-party service provider, consideration must be given to the following: a. Whether Magensa’s IP addresses and domain names must be whitelisted with the third-party b. Whether client and/or server-side certificates are required
2.1.1 INPUT PROPERTIES Property (* required) Type Description
AdditionalRequestData Array of key / value
Contains custom request data required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See sample request.
Amount * Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API
CustomerCode * String Customer code for credential assigned by Magensa
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference
Password * String Password for credential assigned by Magensa
ProcessorName * String Magensa assigned name for third-party service provider
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionType * String Transaction type: SALE, AUTHORIZE, CAPTURE, VOID, REFUND
Username * String Username for credential assigned by Magensa Note: * = Required
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
AVSResult String Address Verification System result from target service provider.
CustomerTransactionID String Client-assigned transaction ID from input.
CVVResult String Card Verification Value result from target service provider.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
MagTranID String Transaction ID (GUID) from Magensa.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.2 ProcessCardSwipe This operation processes a batch of ProcessCardSwipeRequest elements for card-swipe payment mode.
2.2.1 INPUT PROPERTIES Property (* required) Type Description
AdditionalRequestData Array of key / value
Contains custom request data required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See sample request.
Amount * Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API
CustomerCode * String Customer code for credential assigned by Magensa
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference
CVV String Card verification value
DeviceSN String MagTek device serial number
KSN * String Key serial number
MagnePrint * String Encrypted MagnePrint
MagnePrintPStatus * String MagnePrint status
Password * String Password for credential assigned by Magensa
ProcessorName * String Magensa assigned name for third-party service provider
Track1 String Encrypted track 1 data
Track2 * String Encrypted track 2 data
Track3 String Encrypted track 3 data
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples
Contains additional output data. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
AVSResult String Address Verification System result from target service provider.
CardID String Card ID from Magensa.
CustomerTransactionID String Client-assigned transaction ID from input.
CVVResult String Card Verification Value result from target service provider.
IsReplay Boolean Boolean value indicating prior use of KSN from Magensa.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
MagnePrintScore Decimal MagnePrint score from Magensa.
MagTranID String Transaction ID (GUID) from Magensa.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.3 ProcessEMVSRED This operation processes a batch of ProcessEMVSREDRequest elements for EMV payment mode.
2.3.1 INPUT PROPERTIES Property (* required) Type Description
AdditionalRequestData Array of key / value
Contains custom request data required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See sample request. For a fallback transaction, payload tags within the first call may be preserved and passed into the second call. This example shows how to preserve the tags CCTrack2, CCNum, YY, and MM by including a NonremovableTags key/value pair. key = NonremovableTags value = <![CDATA[ <NonremovableTags> <Tag>CCTrack2</Tag> <Tag>CCNum</Tag> <Tag>YY</Tag> <Tag>MM</Tag> </NonremovableTags>]]> To mask a field of the payload response, specify the start and end of a field. This example shows how to mask the contents within an AcctNum field by including a PayloadResponseFieldsToMask key/value pair. key = PayloadResponseFieldsToMask value = <![CDATA[ <FieldsToMask> <Field> <FieldStart><AcctNum></FieldStart> <FieldEnd></AcctNum></FieldEnd> <FieldPattern>$MaskString({MachedField},0,$Add($Length({MachedField}),-4),*) </FieldPattern> </Field> </FieldsToMask>]]>
Amount * Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API.
CustomerCode * String Customer code for credential assigned by Magensa.
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference.
EMVSREDData * String Encrypted EMV transaction data (ARQC) from device.
EncryptionType * String Encryption type used for EMVSREDData: 80 (DUKPT Key Data Variant), 81 (DUKPT Key PIN Variant)
KSN * String Key serial number
NumberOfPaddedBytes *
String Number of bytes padded to the end of the decrypted EMVSREDData to make a multiple of 8 bytes.
Password * String Password for credential assigned by Magensa.
PaymentMode * String Mode of transaction payment: EMV, MagStripe (fallback option for EMV)
ProcessorName * String Magensa assigned name for third-party service provider.
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples.
Contains additional output data. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal
Authorized amount from target service provider.
AVSResult String Address Verification System result from target service provider.
CardID String Card ID from Magensa.
CustomerTransactionID String Client-assigned transaction ID from input.
CVVResult String Card Verification Value result from target service provider.
IsReplay Boolean
Boolean value indicating prior use of KSN from Magensa.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
IsTransactionApproved Boolean
Boolean value indicating approval status of the transaction.
MagTranID String Transaction ID (GUID) from Magensa.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.4 ProcessReferenceID This operation processes a batch of ProcessReferenceIDRequest elements for previously processed transactions.
2.4.1 INPUT PROPERTIES Property (* required) Type Description
AdditionalRequestData Array of key / value
Contains custom request data required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See sample request.
Amount * Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API.
CustomerCode * String Customer code for credential assigned by Magensa.
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference.
Password * String Password for credential assigned by Magensa.
ProcessorName * String Magensa assigned name for third-party service provider.
ReferenceAuthCode String Authorization code of a prior transaction.
ReferenceTransactionID * String Transaction ID of a prior transaction.
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
AVSResult String Address Verification System result from target service provider.
CustomerTransactionID String Client-assigned transaction ID from input.
CVVResult String Card Verification Value result from target service provider.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
MagTranID String Transaction ID (GUID) from Magensa.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.5 ProcessManualEntry This operation processes a batch of ProcessManualEntryRequest elements for manual entry payment mode.
2.5.1 INPUT PROPERTIES Property (* required) Type Description
AdditionalRequestData Array of key / value
Contains custom request data required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See sample request.
AddressLine1 String Line 1 of address
AddressLine2 String Line 2 of address
Amount * Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API.
City String City
Country String Country
CustomerCode * String Customer code for credential assigned by Magensa.
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference.
CVV String Card verification value.
ExpirationDate * String Expiration date in the format required by target service provider.
NameOnCard String Name on the card.
PAN * String Primary Account Number
Password * String Password for credential assigned by Magensa.
ProcessorName * String Magensa assigned name for third-party service provider.
State String State
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples.
TransactionType * String Transaction type: SALE, AUTHORIZE
Username * String Username for credential assigned by Magensa.
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
AVSResult String Address Verification System result from target service provider.
CustomerTransactionID String Client-assigned transaction ID from input.
CVVResult String Card Verification Value result from target service provider.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
MagTranID String Transaction ID (GUID) from Magensa.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples.
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.6 ProcessToken This operation processes a batch of ProcessTokenRequest elements for token payment mode. To generate a Token, call ProcessCardSwipe or ProcessEMVSRED with the ProcessorName as Token.
2.6.1 INPUT PROPERTIES Property (* required) Type Description
Amount * Decimal
Amount for transaction in units (dollars or cents) as per target service provider’s API.
CustomerCode * String Customer code for credential assigned by Magensa.
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference.
Password * String Password for credential assigned by Magensa.
ProcessorName * String Magensa assigned name for third-party service provider.
Token * String Token issued by Magensa’s Token service.
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples.
TransactionType * String Transaction type: CAPTURE, VOID, REFUND, SALE, AUTH
Username * String Username for credential assigned by Magensa. Note: * = Required
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
AVSResult String Address Verification System result from target service provider.
CustomerTransactionID String Client-assigned transaction ID from input.
CVVResult String Card Verification Value result from target service provider.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
MagTranID String Transaction ID (GUID) from Magensa.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples.
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.7 ProcessKeyPadEntry This method is to be used for KeyPad entered card data. It may be used with either SALE or AUTHORIZE. The following data elements are used (* denotes a required field):
2.7.1 INPUT PROPERTIES Property (* required) Type Description
CustomerCode * String Customer code for credential assigned by Magensa.
Password * String Password for credential assigned by Magensa.
Username * String Username for credential assigned by Magensa.
CVV * String Card verification value
DeviceSN String MagTek device serial number
KSN * String Key serial number
MagnePrint * String Encrypted MagnePrint
MagnePrintPStatus * String MagnePrint status
Password * String Password for credential assigned by Magensa
ProcessorName * String Magensa assigned name for third-party service provider
Track1 String Encrypted track 1 data
Track2 * String Encrypted track 2 data
Track3 String Encrypted track 3 data
Amount * Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API
ZIP * Number Valid Zip Code
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference
Contains additional output data. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
CardID String Card ID from Magensa.
IsReplay Boolean Boolean value indicating prior use of KSN from Magensa.
MagnePrintScore Decimal MagnePrint score from Magensa.
CustomerTransactionID String Client-assigned transaction ID from input.
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
MagTranID String Transaction ID (GUID) from Magensa.
AVSResult String Address Verification System result from target service provider.
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
CVVResult String Card Verification Value result from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 1 from target service provider.
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
2.8.1 INPUT PROPERTIES Property (* required) Type Description
AdditionalRequestData Array of key / value
Contains custom request data required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See sample request.
CustomerCode * String Customer code for credential assigned by Magensa.
Password * String Password for credential assigned by Magensa.
Username * String Username for credential assigned by Magensa.
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference
EncryptedData * String Encrypted Data element value from Card reader
KSN * String Key serial number
KeyVariant String Key variant
NumberOfPaddedBytes String Number of bytes padded to the end of the decrypted EMVSREDData to make a multiple of 8 bytes.
Amount* Decimal Amount for transaction in units (dollars or cents) as per target service provider’s API.
ProcessorName* String Magensa assigned name for third-party service provider.
TransactionInputDetails Array of key / value
Contains transaction information required by the target service provider. Elements are expressed as key/value pairs grouped under <KeyValuePairOfstringstring>. See examples.
CustomerTransactionID String Client-assigned transaction ID for easy cross-reference
MPPGv3WSFault String Contains FaultCode, FaultReason and additional details when error encountered while processing particular request. Otherwise is null
MagTranID String Transaction ID (GUID) from Magensa.
AVSResult String Address Verification System result from target service provider.
AuthCode String Authorization code from target service provider.
AuthorizedAmount Decimal Authorized amount from target service provider.
CVVResult String Card Verification Value result from target service provider.
IsTransactionApproved Boolean Boolean value indicating approval status of the transaction.
IssuerAuthenticationData String Issuer authenticate data from target service provider.
IssuerScriptTemplate1 String Issuer script template 1 from target service provider.
IssuerScriptTemplate2 String Issuer script template 2 from target service provider.
Token String The output Token field will have a Token value if Magensa is setup to return one for that target service provider or the target service provider is the Magensa Token service itself
TransactionID String Transaction ID from target service provider.
TransactionMessage String Transaction Message from target service provider.
TransactionOutputDetails Array of key / value
Contains additional output data returned by the target service provider. Elements are expressed as key / value pairs grouped under <KeyValuePairOfstringstring>. See examples
TransactionStatus String Transaction status from target service provider.
TransactionUTCTimestamp String Transaction timestamp from Magensa.
006e8c8e0658ccc939c4ba02eba24b573be091cb314f02c; Path=/; Secure; HTTPOnly & <?xml version="1.0" encoding="UTF-8"?><SaleResponse><status>PASS</status><responseCode>A0000</responseCode><responseMessage>Success</responseMessage><authCode>TAS528</authCode><hostReferenceNumber>030022751391</hostReferenceNumber><hostResponseCode>00</hostResponseCode><taskID>24093084</taskID><transactionID>24397088</transactionID><transactionTimestamp>2020-10-26T15:04:34</transactionTimestamp><transactionAmount>100</transactionAmount><processedAmount>100</processedAmount><totalAmount>100</totalAmount><addressVerificationCode>0</addressVerificationCode><cardType>V</cardType><maskedCardNumber>1111</maskedCardNumber><commercialCard>0</commercialCard><aci>K</aci><cardTransactionIdentifier>000000000199574</cardTransactionIdentifier><customerReceipt> MAGTEK INC \n 8320 S HARDY DRIVE \n TEMPE AZ 85284 \n10/26/2020 15:04:34\n\n CREDIT - SALE \n\nCARD # : **** **** **** 1111\nCARD TYPE : VISA\nEntry Mode : MANUAL\n\nTRANSACTION ID : 24397088 \nInvoice number : 24397088 \nAUTH CODE : TAS528\nSubtotal: $01.00\n--------------------------------------\nTotal: $01.00\n--------------------------------------\n\n\n\n TEST/USER \n\n CUSTOMER ACKNOWLEDGES RECEIPT OF \n GOODS AND/OR SERVICES IN THE AMOUNT \n OF THE TOTAL SHOWN HEREON AND AGREES \n TO PERFORM THE OBLIGATIONS SET FORTH \n BY THE CUSTOMER`S AGREEMENT WITH THE \n ISSUER\n APPROVED \n\n \n \n\n Customer Copy </customerReceipt><merchantReceipt> MAGTEK INC \n 8320 S HARDY DRIVE \n TEMPE AZ 85284 \n10/26/2020 15:04:34\n\n CREDIT - SALE \n\nCARD # : **** **** **** 1111\nCARD TYPE : VISA\nEntry Mode : MANUAL\n\nTRANSACTION ID : 24397088 \nInvoice number : 24397088 \nAUTH CODE : TAS528\nSubtotal: $01.00\n--------------------------------------\nTotal: $01.00\n--------------------------------------\n\n\n\nSignature :\n __________________________ \n\n TEST/USER \n\n CUSTOMER ACKNOWLEDGES RECEIPT OF \n GOODS AND/OR SERVICES IN THE AMOUNT \n OF THE TOTAL SHOWN HEREON AND AGREES \n TO PERFORM THE OBLIGATIONS SET FORTH \n BY THE CUSTOMER`S AGREEMENT WITH THE \n ISSUER\n APPROVED \n\n \n \n\n Merchant Copy </merchantReceipt></SaleResponse>]]> </b:value> </b:KeyValuePairOfstringstring> </a:TransactionOutputDetails> <a:TransactionStatus>A0000</a:TransactionStatus> </a:TransactionOutput> <a:TransactionUTCTimestamp>2020-10-26 22:04:33Z</a:TransactionUTCTimestamp> </a:ProcessEncryptedManualEntryResponse>
3 Encryption Variant Type PIN Encryption Variant Type See Magensa EMV integration guide https://github.com/Magensa/MPPGv3/blob/master/Docs/MagensaMPPGv3Service-EMVIntegrationGuide-2020-03-31-D998200349-20.pdf Data Encryption Variant The EncryptionType is required in the AdditionalRequestData payload. If the EncryptionType is not passed in AdditionalRequestData then the default value will be used in the ProcessCardSwipe . The default Encryption Type is PIN. To determine whether the data was encrypted using the PIN or Data variant use:
• ProcessEMVSRED method, the service can use the data in the encrypted data primitive. See Magensa EMV integration guide https://github.com/Magensa/MPPGv3/blob/master/Docs/MagensaMPPGv3Service-EMVIntegrationGuide-2020-03-31-D998200349-20.pdf
• ProcessCardSwipe method, the service must include additional key/value pair in order to know
the encryption type for the MSR data. The key/value pair need to be added to the ProcessCardSwipe method as follows: [...] <mpp1:ProcessCardSwipeRequest> <mpp1:AdditionalRequestData> <sys:KeyValuePairOfstringstring>
<!-- 80 for data encryption, 81 for PIN --> </sys:KeyValuePairOfstringstring> </mpp1:AdditionalRequestData> <mpp1:Authentication> [...]
For eDynamo reader: When reading EMV data use ProcessEMVSRED When reading MSR data use ProcessCardSwipe To use Data Variant, reader must be set for data variant, example tDynamo, kDynamo To retrieve information from the reader that indicates the encryption variant, send command 000154 to the reader during the application startup process: • 00 for PIN Encryption variant • 01 for Data Encryption variant. For more information about retrieving the card data encryption variant property from the reader, reader’s command reference for "Property 0x54". For SWIPE V5 (MSR data), the only way to know the encryption variant is to ping the device and get the configuration first. It is NOT in the message payload with EMV, it is in the message payload.