Payology - Credit Card Payment Gateway
Payology - Credit Card Payment Gateway

Payology - Credit Card Payment Gateway

Date
Nov 14, 2022 → Apr 14, 2023
Status
Done
Role
Back-End
Tech Stack
NodeJS
TypeScript
SQS
KNEX
PostgresSQL
Tools
GitHub
Visual Studio Code
Notion
Jira
Slack

Context


Project

Payology - Credit Card Payment Gateway

Project Description

Platform that integrates with Rapid Connect ( Product of FirstData ) to perform payment operations using credit cards, contemplating several payment scenarios, with different industries and transaction validation forms, communication using the host capture concept.

Roles

Back-End

Responsibilities

  • Analyzing requirements and documenting integration with FirstData;
  • Transforming the data to identify patterns of behavior according to test scenarios informed by FirstData;
  • Analyzing common and uncommon tags, mandatory and optional tags;
  • Analyzing the relationships between tags and creating the tag neural network;
  • Creating the endpoints that collect information from the merchant terminal;
  • Structuring the organization data and payment recurrence;
  • Creating and modeling the tables;
  • Building the structure of the parse and integration factories;
  • Writing integrations tests with jest;

Introduction


This document aims to translate the research and discovery based on the documents and resources offered by the company first data.
From the project configured on the rapid connect portal, an SDK was generated with all the examples of possible test scenarios that we must ensure to become able to obtain a certification.
Based on these examples, we generated the following specification

Authentication Flow


Before a merchant can use the Datawire Secure Transport Network to process transactions, the applications needs to go through the SRS process to obtain the DID (Datawire ID). A successful SRS process is needed only once to obtain the DID (Datawire ID); thereafter, as long as DID remains valid, the client app will not need to perform SRS again.
notion image

Registration Step

To register a merchant, you need to create a merchant Registration request including Service ID, AuthKey1 (GroupID+MID) and AuthKey2 (TID), and send the request to the SRS XML service URL.
If you receive a <Status Status Code = “Retry”> sub-element, retry up to 3-5 times, with a 30 sec sleep interval between requests. If the error persists, contact securetransport.integration@fiserv.com.
Upon successful registration, the RegistrationResponse will contain an <ns1:Status Status Code = “OK”> sub-element and return the merchant's DID, which must be saved permanently so it is not lost in case of power outages.
 
curl --location --request POST 'https://stagingsupport.datawire.net/nocportal/SRS.do' \ --header 'User-Agent: Payology.io v 1' \ --header 'Content-Type: text/xml' \ --header 'Accept: text/xml, multipart/related' \ --data-raw '<?xml version="1.0" encoding="UTF-8"?> <Request Version = "3"> <ReqClientID> <DID></DID> <App>RAPIDCONNECTSRS</App> <Auth>10001RCTST1000098661|00000001</Auth> <ClientRef>0000001VRCH039</ClientRef> </ReqClientID> <Registration> <ServiceID>160</ServiceID> </Registration> </Request>'

Registration Step Payload

Request

<?xml version="1.0" encoding="UTF-8"?> <Request Version = "3"> <ReqClientID> <DID></DID> <App>RAPIDCONNECTSRS</App> <Auth>10001RCTST1000100227|00000003</Auth> <ClientRef>00000001|RCH090</ClientRef> </ReqClientID> <Registration> <ServiceID>160</ServiceID> </Registration> </Request>
GROUPID - Group Id | MERCHID - Merchant Id | TERMID - Terminal Id | STAN - System Trace Audit Number | TPPID - Project Id Code

Response

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Response PUBLIC "-//Datawire Communication Networks INC//DTD VXN API Self-Registration 3.0//EN" "http://www.datawire.net/xmldtd/srs.dtd"> <Response Version="3"> <RespClientID> <DID>00037896791039319756</DID> <ClientRef>00000001|RCH0008</ClientRef> </RespClientID> <Status StatusCode="OK"/> <RegistrationResponse> <DID>00037896791039319756</DID> <URL>https://stg.dw.us.fdcnet.biz/rc</URL> <URL>https://stg.dw.us.fdcnet.biz/rc</URL> </RegistrationResponse> </Response>

Activation Step

After successfully registering a merchant, the merchant must be activated within a limited time period to send transactions using the Datawire Secure Transport Network.
Otherwise, the merchant will be deactivated & need to restart the registration process with a setup profile on Datawire.
To activate, an Activation request must be sent to the Datawire Secure Transport Network with DID, App, AuthKey1 & AuthKey2, ClientRef, & Service ID parameters. With activation, the merchant can then send transactions.
 
curl --location --request POST 'https://stagingsupport.datawire.net/nocportal/SRS.do' \ --header 'User-Agent: Payology.io v 1' \ --header 'Content-Type: text/xml' \ --header 'Accept: text/xml, multipart/related' \ --data-raw '<?xml version="1.0" encoding="UTF-8"?> <Request Version = "3"> <ReqClientID> <DID>00048337912545508437</DID> <App>RAPIDCONNECTSRS</App> <Auth>10001RCTST1000098661|00000001</Auth> <ClientRef>0000001VRCH039</ClientRef> </ReqClientID> <Activation> <ServiceID>160</ServiceID> </Activation> </Request>'

Activation Step Payload

Request

<?xml version="1.0" encoding="UTF-8"?> <Request Version = "3"> <ReqClientID> <DID>00037896791039319756</DID> <App>RAPIDCONNECTSRS</App> <Auth>10001RCTST1000100227|00000003</Auth> <ClientRef>00000001|RCH040</ClientRef> </ReqClientID> <Activation> <ServiceID>160</ServiceID> </Activation> </Request>
GROUPID - Group Id | MERCHID - Merchant Id | TERMID - Terminal Id | STAN - System Trace Audit Number | TPPID - Project Id Code | DID - Number retrieved from registration

Response

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Response PUBLIC "-//Datawire Communication Networks INC//DTD VXN API Self-Registration 3.0//EN" "http://www.datawire.net/xmldtd/srs.dtd"> <Response Version="3"> <RespClientID> <DID/> <ClientRef>00000001|RCH040</ClientRef> </RespClientID> <Status StatusCode="OK"/> <ActivationResponse/> </Response>

Sending Transactions


Based on the SDK generated through the project settings in the rapid connect portal we identified some patterns:

Fields


Tag
Description
Group
Attribute Type
Length
Format
Payload
Is Mandatory ?
Related Tags
Conditionals
Payment Type This field represents the payment type of the transaction.
Common
AN | Alpha-numeric
…7
Request
Response
Yes
CardType
TxnType
- Mandatory for Prepaid, Fleet, and PvtLabl (except Dicks and CostPlus)
Transaction Type This field represents the type of transaction being performed.
Common
AN | Alpha-numeric
…20
Request
Response
Conditional
TermID
PymtType
SettleInd
- Mandatory for specific PymtType values (e.g., Credit, Debit) - When the Payment Type is Credit, BalanceInquiry is only supported for MasterCard unless the Settlement Indicator value is 3, in which case Visa, Discover, and MaestroInt are also supported
Local Date and Time This field represents the local date and time in which the transaction was performed.
Common
N | Numeric
14
YYYYMMDDhhmmss
Request
Response
Yes
TrnmsnDateTime
OrigTranDateTime
Transmission Date and Time This field represents the transmission date and time of the transaction (in GMT/UTC).
Common
N | Numeric
14
YYYYMMDDhhmmss
Request
Response
Yes
LocalDateTime
OrigLocalDateTime
System Trace Audit Number (STAN) This field represents a number assigned by the merchant to uniquely reference the transaction.
Common
N | Numeric
6
Request
Response
Yes
SettleInd
Reference Number A value assigned by the merchant to uniquely reference a transaction and any subsequent related transactions.
Common
AN | Alpha-numeric
…22
Request
Response
Yes
SettleInd
- When the Settlement Indicator value is 3, the value in this field must be unique within a 30 day period for a given Merchant ID and Terminal ID, except when resending a timed out transaction, which should include the same Reference Number that was sent in the original transaction.
Order Number A number assigned by the merchant to uniquely reference a transaction.
Common
AN | Alpha-numeric
…15
Request
Response
Conditional
TxnType
SettleInd
- Mandatory for specific TxnType values (e.g., Activation, Sale) - Mandatory for all MOTO and Ecommerce financial transactions.
Rapid Connect ID Project This is a Rapid Connect ID assigned by Fiserv for a specific version of vendor/merchant software.
Common
AN | Alpha-numeric
6
Request
Response
Yes
Terminal ID A unique ID assigned by Fiserv to identify a terminal.
Common
AN | Alpha-numeric
…8
Request
Response
Yes
OrigAuthID
- The Terminal ID submitted in a subsequent transaction (e.g. Void, Completion Message, etc.) must match the Terminal ID that was submitted with the original authorization request.
Merchant ID A unique ID used to identify the Merchant. The merchant must use the value assigned by Fiserv. Note: In order to process VISA and MasterCard Money Transfer transactions, the merchant must obtain a separate Merchant ID from Fiserv and be properly setup in the Fiserv back office. A separate Merchant ID is required for each Payment Type Indicator value. These separate Merchant IDs are only used in Money Transfer transactions.
Common
AN | Alpha-numeric
…16
Request
Response
Yes
OrigAuthID
- The Merchant ID submitted in a subsequent transaction (e.g. Void, Completion Message, etc.) must match the Merchant ID that was submitted with the original authorization.
Merchant Category Code (MCC) The merchant category code (MCC) is an industry standard four-digit number used to classify a business by the type of goods or services it provides
Common
N | Numeric
4
Request
Response
Conditional
- This field is optional and supplied if the merchant desires to use a specific MCC rather than the MCC set up in the merchant record, except when the Message Type is MTRequest. - If present in the original transaction, this field must be present in Refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value must be the same as that submitted in the original transaction.
POS Entry Mode An identifier used to indicate how the account number was entered on the transaction and the PIN entry capability of the Point of Sale.
Common
N | Numeric
3
This field consists of a two digit entry mode value followed by a one digit electronic/PIN authentication capability indicator.
Request
Conditional
POSCondCode
TermCatCode
TermEntryCapablt
TxnType
SettleInd
- Mandatory for specific TxnType values (e.g., Sale, Authorization) - This field is mandatory and must only be sent on a ‘CancelDeferredAuth’ transaction when the Settlement Indicator field is present with the value of ‘3’.
POS Condition Code An identifier used to indicate the transaction condition at the Point-of-Sale (POS).
Common
N | Numeric
2
Request
Conditional
POSCondCode
TermCatCode
TermEntryCapablt
TxnType
PymtType
CardType
SettleInd
- Mandatory for specific PymtType and TxnType values (e.g., Credit, Ecommerce) - When the Card Type is ‘MasterCard’ or ‘MaestroInt’, this field is mandatory and must only be sent with the value of ‘04’ in the following scenarios: ◦ The Bill Payment Transaction Indicator is ‘Recurring’ or ‘Installment’ ◦ Transaction Initiation is ‘Merchant’ and Card on File Schedule Indicator XML Tag: CofSchdInd is ‘Unscheduled’
Terminal Category Code An identifier used to describe the type of terminal being used for the transaction.
Common
N | Numeric
2
Request
Yes
POSCondCode
TermCatCode
TermEntryCapablt
SettleInd
- This field is mandatory and must only be sent on a ‘CancelDeferredAuth’ transaction when the Settlement Indicator field is present with the value of ‘3’.
Terminal Entry Capability An identifier used to indicate the entry mode capability of the terminal. Note: A value of ‘04’, ‘06’, ‘08’, ‘09’ or ‘12’ cannot be sent until the client is certified and the device is enabled for EMV.
Common
N | Numeric
2
Request
Yes
POSCondCode
TermCatCode
TermEntryCapablt
SettleInd
- This field is mandatory and must only be sent on a ‘CancelDeferredAuth’ transaction when the Settlement Indicator field is present with the value of ‘3’.
Transaction Amount This field represents the amount of the transaction inclusive of all additional amounts provided in the Additional Amounts Group and all other amount fields throughout the message (e.g. Tax Amount in Purchase Card L2 Group) except the RX, Dental, Vision, Clinical, and FirstAuthAmt values found in the Additional Amounts Group. It is submitted in the currency represented by the Transaction Currency field. The transaction amount returned in the response will be different than the amount submitted in the request for an approved partial authorization transaction.
Common
N | Numeric
…12
Request
Response
Yes
TxnCrncy
TaxAmtCapablt
SettleInd
Transaction Currency This field contains the numeric currency code of the Transaction Amount.
Common
N | Numeric
3
Request
Response
Yes
TxnCrncy
TaxAmtCapablt
SettleInd
Terminal Location Indicator This field indicates the location of the terminal.
Common
AN | Alpha-numeric
1
Request
Yes
CardCaptCap
Card Capture Capability This field represents the terminal capability to capture the card data.
Common
N | Numeric
1
Request
Yes
TermLocInd
Track2Data
Group ID An ID assigned by Fiserv, to identify the individual merchant or group of merchants.
Common
AN | Alpha-numeric
5…13
Request
Response
Yes
Settlement Indicator This field indicates a particular type of settlement other than Host Capture. This field is not applicable for Host Capture merchants. If this field is sent with a value of 1, then response messages will contain several fields that are normally not returned for host capture merchants, but are needed to build a PTS settlement file. These fields include the Merchant Category Code in COMMON Group for Debit, PINLess Debit, EBT, and Credit transactions. If the transaction is a MasterCard transaction, MasterCard POS Data in the MASTERCARD Group will also be returned. Note: Non Host Capture merchants are required to send the Settlement Indicator on all transactions, including transactions for which there will be no subsequent settlement, e.g. a Prepaid Closed Loop Load.
Common
N | Numeric
1
Request
Yes
TxnType
CardType
Transaction Initiation This field details how the transaction was initiated.
Common
AN | Alpha-numeric
8
Request
Conditional
PymtType
ACI
MCACI
DiscACI
DiscAuthInd
StoredCredInd
- Mandatory when ACI or MCACI or DiscACI is present. - This field is mandatory in a transaction that includes the VisaAuthInd field with the value of ‘CrdOnFile’, and/or the Stored Credential Indicator XML Tag: StoredCredInd field. - If present in the original transaction, this field must be present in subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.).
Reversal Reason Code This field indicates the reason that a transaction is being reversed. Additional information regarding reversal processing can be found in Reversal Processing Table
Common
AN | Alpha-numeric
…7
Request
No
TxnType
Refund Type This field indicates whether a Credit or Fleet Refund is authorized real time.
Common
AN | Alpha-numeric
…8
Request
Conditional
SettleInd
PymtType
TxnType
- This field is mandatory only when the merchant wants to support real time refund authorizations
Digital Wallet Program Type This field identifies the brand of digital wallet or tokenization program used in a transaction.
Common
AN | Alpha-numeric
…10
Request
Conditional
CardType
DiscPOSEntry
- If present in the original transaction, this field must be present in Refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value must be the same as that submitted in the original transaction.
Account Number This field represents the account number of the card used in the transaction.
Card
N | Numeric
…23
Request
Response
Conditional
CardType
PymtType
DiscPOSEntry
- Mandatory for specific PymtType values (e.g., Credit, Debit) - This field must be present if the Account Number is manually entered (POS Entry Mode = 01 or 79) except if the Card Type is SpeedPass.
Card Expiration Date This field represents the expiration date of the card used in the transaction.
Card
N | Numeric
6 or 8 depending on the absence or presence of “DD” part
YYYYMMDD
Request
Yes
CardType
Card Type This field represents an identifier used to indicate the card type.
Card
AN | Alpha-numeric
…10
Request
Conditional
PymtType
POSCondCode
- Mandatory for specific PymtType values (e.g., Fleet, Prepaid, Credit with POSCondCode 04, 08, or 59)
CCV Indicator This field contains an identifier provided in the authorization request to indicate the presence or absence of CCV data on the card.
Card
AN | Alpha-numeric
…12
Request
Conditional
CardType
CCVData
PymtType
- Mandatory for specific PymtType and TxnType values (e.g., Credit, Ecommerce)
CCV Data CVV2, DTVV, CVC2, CID and CVN2 (referred to in Rapid Connect as CCV Data) are, Visa, MasterCard, MaestroInt, American Express, Discover and UnionPay card verification tools designed to reduce fraud losses primarily on transactions when the card is not present. With the exception of American Express, this is a three character value printed on the back of the card in the signature panel, after the card number. For American Express, it is a four character value printed on the face of the card.
Card
AN | Alpha-numeric
3 or 4
Request
Conditional
CardType
CCVInd
- Mandatory when CCVInd is present - When this field is present in the transaction, the CCV Indicator field must also be present in the transaction with the value of ‘Prvded’.
CCV Result Code This field is used to indicate the result code of the CCV verification.
Card
AN | Alpha-numeric
…6
Response
Conditional
CCVData
CCVInd
CardType
TxnType
EcommTxnInd
- This field is present in response messages when CCV validation is attempted. - Mandatory when CCVData is present
AVS Result Code The result of checking the cardholder’s postal code and any additional address information provided against the Issuer’s system of record.
Card
AN | Alpha-numeric
1
Response
Conditional
AVSBillingAddr
AVSBillingPostalCode
CardType
TxnType
EcommTxnInd
- Mandatory when AVSBillingAddr or AVSBillingPostalCode are present - This field may be returned on any transaction in which Customer address information is provided except when the Card Type is PPayCL
ALM Service Code This field indicates the ALM program and service. ALM Service Code represents the Account Level Management service or combination of ALM services for which the PAN is actively registered. Note: This field has limited platform availability.
Card
AN | Alpha-numeric
5
For Examples: 01323 (AFFLUENT SHORTFALL WORLD ELITE MASTERCARD) 00000 (ALM SERVICE UNAVAILABLE IN AUTHORIZATION) 00126 (PAN NOT REGISTERED FOR ALM, BUT ISSUERS ACCOUNT RANGE IS ACTIVE)
Response
No
ALMProdCode
ALMProdClass
ALMRateType
CardType
- This field may be returned in a transaction response only when the Card Type is ‘MasterCard’ or ‘MaestroInt’.
ALM Rate Type This field indicates the Rate Type number for the applicable ALM Service. Note: This field has limited platform availability.
Card
AN | Alpha-numeric
3
For Examples: 811 (Core Business to Level 1 Adjustment) XXX (Rate Type does not apply, or has not been configured for the ALM Service Code)
Response
No
ALMSvcCode
ALMProdCode
ALMProdClass
CardType
- This field may be returned in a transaction response only when the Card Type is ‘MasterCard’ or ‘MaestroInt’.
ALM Product Code This field contains the licensed graduated product code or the registered product code for those transactions identified with a PAN registered and qualifying for Product Graduation Plus or Consumer Product Monitoring Service, or a combination of Account Level Management Services. Note: This field has limited platform availability.
Card
AN | Alpha-numeric
3
For Examples: DPL (Digital Platinum Mastercard Card) XXX (PAN is not registered in Product Graduation Plus or Consumer Product Monitoring Service)
Response
No
ALMSvcCode
ALMProdClass
ALMRateType
CardType
- This field may be returned in a transaction response only when the Card Type is ‘MasterCard’ or ‘MaestroInt’.
ALM Product Class This field indicates the Product Class Override for the applicable ALM Service. Note: This field has limited platform availability.
Card
AN | Alpha-numeric
3
For Examples: MAC (CORPORATE WORLD ELITE) XXX (Product Class Override does not apply, or has not been configured for the ALM Service Code)
Response
No
ALMSvcCode
ALMProdClass
ALMRateType
CardType
- This field may be returned in a transaction response only when the Card Type is ‘MasterCard’ or ‘MaestroInt’.
Track 2 Data This field contains the unaltered track 2 data from the magnetic stripe of the card.
Card
ANS | Alpha-numeric Special
…37
Track Data should not be altered, but start sentinel, end sentinel, and LRC must not be included.
Request
Conditional
DiscPOSEntry
CardType
- This field should be present if the POS Entry Mode = 05, 07, 80, 82, 86, 90 or 91, except on Credit Reversals and Completions for which it must not be sent unless otherwise stated specific in a rule.
Ecomm Transaction Indicator An indicator provided by the merchant to identify the security level of an Ecommerce transaction. In the MasterCard SecureCode, Discover ProtectBuy and American Express Safekey (AESK).
Ecomm
N | Numeric
2
Request
Conditional
CardType
POSCondCode
DiscPOSEntry
UCAFCollectInd
- Mandatory when POSCondCode is 08 or 59 (Ecommerce or MOTO)
Customer Service Phone Number This field contains the phone number, provided by the merchant, used to assist cardholders with questions pertaining to the transaction.
Ecomm
N | Numeric
…10
Request
Conditional
EcommTxnInd
MOTOIndicator
CardType
- Mandatory when EcommTxnInd is present - This field is required for MOTO (Mail Order/Telephone Order) Authorization, Completion, Sale, BatchSettleDetail, and Refund transactions (the same is recommended but not required in Ecommerce Authorizations) except when the Payment Facilitator Phone Number is present, Payment Facilitator Group is present and the Card type is Amex, or if the merchant is setup through a Multi-Mid Payment Facilitator
EComm URL This field contains the URL of the site performing the Ecommerce transaction.
Ecomm
ANS | Alpha-numeric Special
…32
Request
Conditional
EcommTxnInd
CardType
- Mandatory when EcommTxnInd is present
MOTO Indicator This field indicates whether the transaction is Mail Order or Telephone Order
Ecomm
AN | Alpha-numeric
…10
Request
Conditional
CardType
POSCondCode
- This field is mandatory and must only be sent when the transaction contains the Card Type value of ‘AMEX’ and POS Condition Code value of ‘08’ (MOTO). - If present in the original transaction, this field must be sent with the same value from the original transaction in subsequent transactions (e.g. Completion, Void/Full Reversal, etc).
Merchant Name This field contains the merchant name/product/service to be used in lieu of the DBA name on the Fiserv Merchant File.
Alternate Merchant Name and Address
ANS | Alpha-numeric Special
…38
“XYZA SMALL CO”
Request
No
MerchID
- If present in the original transaction, this field must be present in refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value should be the same as submitted in the original transaction.
Merchant Address This field contains the merchant address to be used in lieu of the merchant address on the Fiserv Merchant File
Alternate Merchant Name and Address
ANS | Alpha-numeric Special
…30
Request
No
MerchID
- If present in the original transaction, this field must be present in refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value should be the same as submitted in the original transaction.
Merchant City This field contains the merchant city to be used in lieu of the city on the Fiserv Merchant File.
Alternate Merchant Name and Address
ANS | Alpha-numeric Special
…20
Request
No
MerchID
- If present in the original transaction, this field must be present in refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value should be the same as submitted in the original transaction.
Merchant State This field contains the merchant state code to be used in lieu of the state code on the Fiserv Merchant File.
Alternate Merchant Name and Address
AN | Alpha-numeric
2
Request
No
MerchID
- If present in the original transaction, this field must be present in refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value should be the same as submitted in the original transaction.
Merchant County This field contains the merchant county to be used in lieu of the merchant county on the Fiserv Merchant File.
Alternate Merchant Name and Address
AN | Alpha-numeric
3
Request
No
MerchID
- If present in the original transaction, this field must be present in refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value should be the same as submitted in the original transaction.
Merchant Postal Code This field contains the merchant postal code to be used in lieu of the merchant postal code on the Fiserv Merchant File.
Alternate Merchant Name and Address
ANS | Alpha-numeric Special
…9
Only Alphanumeric and Spaces are allowed in this field.
Request
No
MerchID
- If present in the original transaction, this field must be present in refunds and subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.). The value should be the same as submitted in the original transaction.
Additional Amount Type This field represents the type of Additional Amount in the transaction.
Additional Amounts
AN | Alpha-numeric
…12
Request
Conditional
AddAmt
- If the Additional Amount field is present then this field must also be present.
Additional Amount Currency This field represents the numeric currency of the Additional Amount in the transaction.
Additional Amounts
N | Numeric
3
Request
Conditional
AddAmt
- If the Additional Amount field is present then this field must also be present.
Additional Amount This field represents the value for a single additional amount instance.
Additional Amounts
ANS | Alpha-numeric Special
…13 (12 digits for numbers with a conditional minus sign)
The field may start with a “-” to indicate a negative amount. For more details, refer to the Amount Format section.
Request
Conditional
AddAmtCrncy
AddAmtType
- For each Additional Amount field that is present the corresponding Additional Amount Currency and Additional Amount Type fields will also be present.
Partial Authorization Approval Capability An identifier used to indicate whether or not the terminal/software can support partial authorization approvals. Partial Authorization support is generally required for all Merchants in card-present environments in order to accommodate cardholder accounts where limited funds may be available (e.g. Debit or Open Loop Prepaid cards). Additionally, Merchant Payment Facilitators (Aggregators) and MOTO Merchants are required to support Partial Authorization approvals. Ecommerce merchants have the option to support Partial Authorization approvals and are strongly encouraged to do so. Note: If a Merchant sends the Partial Authorization Approval Capability indicator of (0), when required to use (1), they will receive higher fees, interchange downgrades or possibly both. For more information, please contact your Account Representative.
Additional Amounts
N | Numeric
1
Request
No
Original Authorization ID The Authorization ID of the response to the original message.
Original Authorization
ANS | Alpha-numeric Special
…8
Request
Response
Conditional
AuthID
- If the Authorization ID was returned in the response to the original authorization the same value should be provided in subsequent transactions (e.g. Completion, Void/FullReversal, etc).
Original Response Date The date returned to the merchant in the authorization response message
Original Authorization
N | Numeric
6
YYMMDD
Request
Conditional
RespDate
- If the Response Date was returned in the response to the original authorization the same value must be provided in this field in subsequent transactions (e.g. Completion, Void/FullReversal, etc).
Original Local Date and Time This field contains the local date and time of the original authorization transaction.
Original Authorization
N | Numeric
14
YYYYMMDDhhmmss
Request
Conditional
LocalDateTime
- This field is required for all subsequent transactions (e.g. Completion, Void/FullReversal, etc). - This field is required for Timeout Reversals.
Original Transmission Date and Time This field contains the transmission date and time of the original transaction (in GMT/UTC)
Original Authorization
N | Numeric
14
YYYYMMDDhhmmss
Request
Conditional
TrnmsnDateTime
- This field is required for all subsequent transactions (e.g. Completion, Void/FullReversal, etc). - This field is required for Timeout Reversals.
Original STAN This field contains the STAN (System Trace Audit Number) of the original transaction.
Original Authorization
N | Numeric
6
Request
Conditional
CardType
TxnType
PymtType
ACI
MCACI
DiscACI
- This field is required for all subsequent transactions (e.g. Completion, Void/FullReversal, etc). - This field is required for Timeout Reversals.
Original Response Code This field contains the Response Code returned in the original authorization response.
Original Authorization
N | Numeric
3
Request
No
RespCode
Bill Payment Transaction Indicator An identifier used to indicate the type of bill payment or MIT transaction.
Bill Payment
AN | Alpha-numeric
…12
Request
Conditional
CardType
PymtType
TxnType
CCVData
CCVInd
AVSBillingAddr
AVSBillingPostalCode
SettleInd
- This field is mandatory for all bill payment and MIT such as recurring, installment transactions
MasterCard UCAF Collection Indicator This field indicates whether the merchant supports MasterCard UCAF (Secure Code) data collection.
Secure Transaction
AN | Alpha-numeric
1
Request
Conditional
FinAuthInd
CardType
- Mandatory when FinAuthInd is present - If this field is returned on a transaction response, this field must be present with the same value returned in the original transaction in subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.).
MasterCard Secure Data This is a cryptographic value that is generated during the MasterCard transaction authentication process (MasterCard UCAF/ SecureCode) or statically assigned to the merchant by MasterCard. This data must be passed unaltered by the merchant to Rapid Connect.
Secure Transaction
ANS | Alpha-numeric Special
28…32
Request
Conditional
TxnType
EcommTxnInd
CardType
UCAFCollectInd
- Mandatory for specific TxnType values (e.g., Sale, Authorization) - This field must be present if the transaction being submitted is a MasterCard UCAF transaction
Amex Secure Data This is a cryptographic value that is generated during the Amex transaction authentication process i.e. American Express AEVV (American Express SafeKey).
Secure Transaction
B64 | Base 64
28
Request
Conditional
TxnType
EcommTxnInd
CardType
- Mandatory for specific TxnType values (e.g., Sale, Authorization)
Visa Secure Transaction Authentication Data This is a cryptographic value that is generated during the VISA transaction authentication process i.e. VISA CAVV (3-D Secure) or an ApplePay In-App token transaction.
Secure Transaction
B64 | Base 64
28
Request
Conditional
TxnType
EcommTxnInd
CardType
- Mandatory for specific TxnType values (e.g., Sale, Authorization) - This field must be present if the 3D Secure transaction for VISA has ECOMM Group. Ecomm Transaction Indicator as 01 or 02.
AVS/Billing Address This field contains the street address of the customer. This field is used to submit the street address of the cardholder when attempting to perform address verification.
Customer Info
ANS | Alpha-numeric Special
…30
Request
Conditional
EcommTxnInd
CardType
- For American Express Verification transactions either this field or AVS/Billing Postal Code is required.
AVS/Billing Postal Code This field contains the postal or zip code of the cardholder. This field is used to submit the postal code of the cardholder when attempting to perform address verification.
Customer Info
ANS | Alpha-numeric Special
…9
Request
Conditional
EcommTxnInd
CardType
- For American Express Verification transactions either this field or AVS/Billing Postal Code is required.
Amex POS Data This field contains transaction specific data that is returned by American Express and required on subsequent transactions.
Amex
AN | Alpha-numeric
12
Response
Request
Conditional
CardType
- The same Am Ex POS Data values that were received in the original response message must be submitted in subsequent transactions.
Amex Tran ID A unique value up to 20 digits assigned by American Express, used to identify and link all related transactions for authorization and settlement through American Express. This field contains the Transaction Identifier and Validation Code.
Amex
ANS | Alpha-numeric Special
…20
Response
Request
Conditional
CardType
TxnType
- The value returned in this field on the initial authorization response may be sent in the subsequent MIT authorization transactions, except when the merchant is in Europe for which it is mandatory to be sent. Note: For recurring and installment MIT transactions, if the original tran id is not available, then the most recent value in a given series must be provided.
Authorization Characteristics Indicator A mandatory code used for qualification in the Custom Payment Service (CPS) program as defined by Visa. Upon evaluation, the code may be changed in the response message if provided by Visa.
Visa
AN | Alpha-numeric
1
Response
Conditional
TxnType
CardType
- Mandatory for specific TxnType values (e.g., Sale, Authorization) - The value of “R” in the request message is only allowed for specific “Select Developing Market” merchants with the following MCC’s - 4899, 5960, 5968, 5983, 6300, 8211, 8220, 8299, 8351, 8398, 9211, 9222, or 9399. Card-not-present transactions with these MCC’s are not required to send AVS.
VISA BID This field contains the Business Identifier (BID) provided by Visa to Third Party Servicers (TPS).
Visa
ANS | Alpha-numeric Special
…10
Request
No
Visa Agent Unique Account Result (AUAR) This field contains Agent Unique Account Result (AUAR) provided by Visa to Third Party Servicers (TPS).
Visa
H | Display Hexadecimal
12
Request
No
Tax Amount Capability This field indicates the capability of the terminal to prompt for the Tax Amount, and then handle the Commercial card type in the response message.
Visa
AN | Alpha-numeric
…2
Response
Request
No
TxnType
CardType
Source Reason Code This field identifies the source of the decision for the transaction.
Visa
AN | Alpha-numeric
1
Response
No
TxnType
- This field may be returned in credit authorization response messages, when available.
Transaction Identifier This field represents a unique value up to 20 digits assigned by Visa, used to identify and link all related transactions for authorization and settlement through Visa. This field contains Transaction Identifier and Validation Code.
Visa
ANS | Alpha-numeric Special
…20
Response
Request
Conditional
TxnType
- This field must be submitted on subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc) just as it was returned in the authorization response message, if available except when the Private Label Group is present.
Market Specific Data Indicator The Market Specific Data Indicator (MSDI) identifies the industry for which the transaction data applies (i.e. Healthcare, Bill Payment, etc.). It must be provided when the transaction is being submitted for one of the categories listed in the Value Set, and has a payment type of Credit
Visa
AN | Alpha-numeric
…15
Request
No
BillPymtTxnInd
- If the BILL PAYMENT Group.Bill Payment Transaction Indicator is “Single”, “Recurring”, “Deferred” or “Installment” then this field must be submitted as “BillPayment”.
MasterCard Authorization Type This field designates whether the authorization is a final authorization. Note: This field was previously named “Final Authorization Indicator”.
Mastercard
N | Numeric
1
Request
Conditional
PymtType
CardType
- This field is mandatory in MasterCard and MaestroInt transactions.
BankNet Data This field contains data that is assigned by MasterCard, to every transaction that is processed through MasterCard’s Banknet System.
Mastercard
AN | Alpha-numeric
13
Response
Conditional
CardType
-This field is mandatory for MIT transactions such as recurring or installment transaction when the merchant is in Europe. Note: When a value is available, best practice is to send the value returned on the very first authorization response in a given series. But, if that is not available the most recent value in the series must be provided. When no previous values are available, MasterCard has allowed merchants to provide the Default value of 1231MCC999999 instead for a transitional period giving merchants time to store BankNet Data for any subsequent transactions.
Transaction Integrity Class This field details the transaction integrity class assigned by MasterCard for a U.S. merchant in an authorization response message.
Mastercard
AN | Alpha-numeric
…10
Response
Conditional
CardType
- If this field is returned on a transaction response, this field must be present in subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.) with the same value that was returned in the original transaction response.
Market Specific Data Indicator The Market Specific Data Indicator (MSDI) identifies the industry for which the transaction data applies (i.e. Healthcare, Bill Payment, etc.). It must be provided when the transaction is being submitted for one of the categories listed in the Value Set, and has a payment type of Credit.
Mastercard
AN | Alpha-numeric
…15
Request
Conditional
BillPymtTxnInd
TxnType
SettleInd
CardType
- This field is mandatory and must only be sent on a ‘CancelDeferredAuth’ transaction when the Settlement Indicator field is present with the value of ‘3’. - The same value submitted at the time of authorization must be submitted on all subsequent transactions. - If the Bill Payment Data.Bill Payment Transaction Indicator is “Recurring”, then this field must be submitted as “BillPayment”.
Mastercard Auth Indicator This field is used to indicate the type of authorization requested.
Mastercard
AN | Alpha-numeric
…9
Request
Conditional
TxnType
SettleInd
CardType
- This field is mandatory and must only be sent on a ‘CancelDeferredAuth’ transaction when the Settlement Indicator field is present with the value of ‘3’. - This field with the value of CrdOnFile must be sent in all Mastercard credential-on-file transactions
Stored Credential Indicator This field is used to indicate the usage of stored credentials.
Mastercard
AN | Alpha-numeric
…10
Request
Conditional
CardType
MCAuthInd
POSCondCode
DiscPOSEntry
- The field must be sent in a transaction that includes the Auth Indicator field XML Tag MCAuthInd with the value of CrdOnFile. - This field must be present with the value of ‘Subsequent’ when the POS Entry Mode value is 10, except when the POS Condition Code is 04 for which it can be ‘Initial’ or ‘Subsequent’.
Card On File Schedule Indicator This field is used to indicate if the stored credential transaction was scheduled.
Mastercard
AN | Alpha-numeric
…11
Request
Conditional
MCAuthInd
SettleInd
TxnType
CardType
- This field is mandatory and must only be sent on a ‘CancelDeferredAuth’ transaction when the Settlement Indicator field is present with the value of ‘3’.
CIT/MIT Framework Indicator This field is used to identify whether the transaction was initiated by the cardholder or the merchant as well as providing more detail as to the type of stored credential being used for the transaction.
Mastercard
AN | Alpha-numeric
4
Request
Conditional
MCAuthInd
DiscPOSEntry
POSCondCode
StoredCredInd
CardType
- This field must be sent in a credential-on-file transaction that includes the Auth Indicator field XML Tag MCAuthInd.
MasterCard ACI A code used to identify an Incremental transaction or any transaction that participates in the Preferred Rate program.
Mastercard
AN | Alpha-numeric
1
Request
Conditional
CardType
TxnType
- Mandatory in MasterCard Credit Authorization, Reversals, and BatchSettleDetail transactions that contain the Lodging or Auto Rental Groups
MasterCard Additional Data This field provides the additional data required for an Incremental transaction.
Mastercard
AN | Alpha-numeric
13
Request
Response
Conditional
TxnType
MCACI
- This field must be sent zero filled in all transactions (except Void/Full Reversals) when the transaction includes the MCACI field with the value of ‘I’. - If this field is sent in a request, the value received in the response must be sent in any subsequent Void/Full Reversal transaction.
Device Type Indicator This field is used to identify the form factor used at the POS for MasterCard PayPass transactions.
Mastercard
AN | Alpha-numeric
…2
Request
Conditional
DiscPOSEntry
CardType
- The Device Type Indicator is mandatory in MasterCard transactions when contactless POS device is used (POS Entry Mode = 07, 82 or 91), except when the EMV Tag 9F6E is not available, or the Device Type is blank or invalid if available
Discover Transaction Qualifier The indicator used to identify the magnetic stripe conditions and the vulnerability to fraud for Discover Card transactions.
Discover
AN | Alpha-numeric
2
Request
Response
Conditional
CardType
- This field must be submitted in subsequent transactions if it was returned in the authorization response message. - This field may be returned in the authorization response, if available.
Discover Response Code The code assigned by Discover which indicates the status of the transaction.
Discover
AN | Alpha-numeric
2
Request
Response
Conditional
TxnType
CardType
- This field must be submitted in subsequent transactions if it was returned in the authorization response message - This field may be returned in the authorization response, if available.
Discover POS Entry Mode The entry mode provided to Discover for the transaction.
Discover
N | Numeric
4
Request
Response
Conditional
TxnType
CardType
- This field must be submitted in subsequent transactions if it was returned in the authorization response message - This field may be returned in the authorization response, if available.
Discover Processing Code A composite value used to identify the type of transaction.
Discover
AN | Alpha-numeric
6
Request
Response
Conditional
TxnType
CardType
- This field must be submitted in subsequent transactions if it was returned in the authorization response message - This field may be returned in the authorization response, if available.
Discover NRID The Network Result Indicator (NRID) assigned by Discover.
Discover
AN | Alpha-numeric
…15
Request
Response
Conditional
DiscTransQualifier
TxnType
RefundType
ReversalInd
- This field must be submitted on incremental authorizations just as it was returned in the original authorization response message, if available. - This field must be submitted on re-authorization/partial shipment/re-submission/delayed charge/no show transactions with the same value just as it was returned in the original authorization response message, if available.
Discover ACI A code used to identify an Incremental transaction.
Discover
AN | Alpha-numeric
1
Request
Response
Conditional
TxnType
ReversalInd
RefundType
MerchCatCode
- This field must only be sent in Discover Credit Authorization, Completion, Reversals, and BatchSettleDetail transactions that contain the following MCC’s: 3351 - 3441, 3501 - 3999, 4111, 4112, 4121, 4131, 4411, 4457, 5411, 5552, 5812, 5813, 7011, 7033, 7512, 7513, 7519, 7523, 7996, 7394 or 7999.
Discover POS Data The specific POS capture conditions for the card information at the time of the transaction.
Discover
AN | Alpha-numeric
13
Request
Response
Conditional
TxnType
CardType
- This field must be submitted in subsequent transactions if it was returned in the authorization response message - This field may be returned in the authorization response, if available.
DCC Indicator This field indicates the type of Dynamic Currency Conversion transaction.
Dynamic Currency Conversion
AN | Alpha-numeric
1
Request
No
SettleInd
TxnType
CardType
- This field is applicable to Visa or MasterCard Credit cards only. - This field can only be sent in an Authorization transaction when the Settlement Indicator field is present in the transaction
DCC Transaction Time Zone This field indicates the deviation in hours from Greenwich Mean Time, based on merchant time zone. If the merchant were located in GMT, the value would be “+00”.
Dynamic Currency Conversion
ANS | Alpha-numeric Special
+nn or –nn
Request
Conditional
CardType
DCCInd
- This field is required only if DCC Indicator is 1. - This field is applicable to Visa or MasterCard Credit cards only.
Cardholder Currency Amount This field identifies the total transaction amount in the currency of the card issuer.
Dynamic Currency Conversion
N | Numeric
…12
Request
Conditional
DCCRate
DCCCrncy
DCCInd
CardType
- This field must be present if DCC Indicator is 1. - If this field is present, then the following fields must also be present: ◦ DCC Indicator ◦ Currency Conversion Rate ◦ Cardholder Currency Code - This field is applicable to Visa or MasterCard Credit cards only.
Currency Conversion Rate This field identifies the non-US currency conversion rate used to convert the Transaction Amount to the value of Cardholder Currency Amount.
Dynamic Currency Conversion
N | Numeric
8
Last four decimal places are implied.
Request
Conditional
CardType
DCCInd
- This field is required only if DCC Indicator is 1. - This field is applicable to Visa or MasterCard Credit cards only.
Cardholder Currency Code The numeric currency code associated with the Cardholder Currency Amount.
Dynamic Currency Conversion
N | Numeric
3
The values for this field are contained in Appendix A – Currency Codes.
Request
Conditional
CardType
DCCInd
- This field is required only if DCC Indicator is 1. - This field is applicable to Visa or MasterCard Credit cards only.
Response Code This field contains a value representing the status of the transaction. Note: If the message format is not valid then a RejectResponse message may be returned containing Error Data.
Response
N | Numeric
3
The values for this field are contained in Appendix A – Response Codes.
Response
Yes
- This field is present in responses to transactions that are successfully processed by Fiserv.
Response Date This field contains the date returned to the merchant in the authorization response message. Note: It is possible that the value in this field may not be the same as the value submitted in either the Local Date and Time field or the Transmission Date and Time field of the original transaction.
Response
N | Numeric
6
YYMMDD
Response
Request
Conditional
LocalDateTime
TrnmsnDateTime
OrigLocalDateTime
OrigTranDateTime
- This field may be returned in the response to an authorization request. - If a value is returned in the authorization response, the same value must be submitted on subsequent transactions (e.g. Voids/Full Reversals Messages, etc.) in the Original Response Date field of the ORIGINAL AUTHORIZATION Group.
Additional Response Data This field contains additional data that may be returned in an authorization response message. This field could contain values that describe items such as the reason for a decline, the field in error, etc.
Response
ANS | Alpha-numeric Special
…50
Response
No
RespCode
- This field will be returned when data is available.
Authorization ID The value assigned by the authorizer and returned in the response to the authorization request.
Response
ANS | Alpha-numeric Special
..8
Response
Conditional
- This field is returned if the transaction was approved. - Note: Only Alphanumeric and Spaces will be returned in this response field.
Authorizing Network ID This field indicates the Network ID as returned by the host, when available.
Response
AN | Alpha-numeric
…3
The values for this field are contained in Appendix A – Authorizing Network ID.
Response
Request
Yes
CardType
AthNtwkNm
OrigAuthID
TxnType
ReversalInd
RefundType
- This field may be present in the response message. - If this field is returned in a transaction response, the value received in this field must be sent in the Original Authorizing Network ID field in subsequent transactions (e.g. Voids/Full Reversals, Completion Messages, etc.).
Authorizing Network Name This field indicates the Authorizing Network Name which should be printed on the cardholder’s receipt.
Response
ANS | Alpha-numeric Special
…10
Response
Yes
CardType
AthNtwkID
- This field will be returned when available.
Built with Potion.so