4D Payments SDK 2016 .NET Edition

Questions / Feedback?

FDMSOmahaBatchMgr Component

Properties   Methods   Events   Configuration Settings   Errors  

The FDMSOmahaBatchMgr component is used to close batches and also handles the sending of all offline transactions to the FDMS Host.




This component allows for a connection to the FDMS Omaha platform via a VPN or PPP (dial-up) connection. This component can be integrated into web pages or stand-alone Point Of Sale applications.

The FDMSOmahaBatchMgr component makes sending offline transactions and closing batches very easy by adding an additional layer of abstraction between the programmer and the protocol. There is no need to deal with raw sockets, TLS/SSL handshakes, or data packet formatting. The steps to setting up the component and authorizing a transaction are outlined below:

First, set the merchant and POS specific properties with setup information acquired from your member bank or processor. For instance:

FDMSOmahaBatchMgr.MerchantNumber = "123456789123456"
FDMSOmahaBatchMgr.MerchantTerminalID = "XXX01"
FDMSOmahaBatchMgr.DeviceId = "DID1" // Optional, Merchant-Assigned

Next, add all the detail records for the transactions you wish to settle in the batch. Note that all the added detail records must be transactions that are processed within the same batch that you wish to close. Below is an example of how to add a detail record to the OmahaBatchMgr component.

FDMSOmahaBatchMgr.DetailRecords.Add(new FDMSOmahaRecordType(FDMSOmahaRetail.GetDetailAggregate()))

The BatchNumber and TransactionNumber should then be set. Note the BatchNumber should be the same value as all the transactions contained within the DetailRecords. The TransactionNumber specified must be 1 greater than the number of Credit Card transactions specified within DetailRecords and less than the last Debit/EBT Card TransactionNumber specified. See TransactionNumber for more specific information.

FDMSOmahaBatchMgr.BatchNumber = 1
FDMSOmahaBatchMgr.TransactionNumber = 2

Finally the batch can be closed by calling CloseBatch. When CloseBatch is called, all the off-line transactions (Voids, Revisions, etc.) will be sent to the Host. After all the off-line transactions have been successfully sent, the batch close request will be sent. If the batch was successfully closed, Success will be 'True'.


Note it is possible that the Host may be out-of-balance with the Total Amount specified (which is calculated by the component based on the information contained within the DetailRecords). If such a case occurs, the Host may request an inquiry to synchronize all transactions (this request is sent after a batch close message is sent by the component). When the component receives this request, it will handle all inquiries and respond accordingly based on the request and information contained within DetailRecords. Once the host is in sync, the Host will send the close batch response and Response will be populated. Success will be true if the batch was successfully closed.

Property List

The following is the full list of the properties of the component with short descriptions. Click on the links for further details.

ApplicationIdIdentifies the merchant application to the Datawire System.
BatchNumberNumber identifying the batch (assigned by the POS device).
ClientRefUniquely identifies the transaction within the Datawire system.
DatawireIdIdentifies the merchant to the Datawire System.
DetailRecordsCollection of detail records to send in the close batch transaction.
DeviceIdPOS Device Identification.
LocalHostThe name of the local host or user-assigned IP interface through which connections are initiated or accepted.
LocalPortThe TCP port in the local host where the component binds.
MerchantNumberA unique number used to identify the merchant within the FDMS systems.
MerchantTerminalIDUsed to identify a unique terminal within a merchant location.
ProxyA set of properties related to proxy access.
RemoteHostThe address of the remote host. Domain names are resolved to IP addresses.
RemotePortThe TCP port in the remote host.
ResponseContains the response to an authorization request.
SSLAcceptServerCertInstructs the component to unconditionally accept the server certificate that matches the supplied certificate.
SSLCertThe certificate to be used during SSL negotiation.
SSLServerCertThe server certificate for the last established connection.
TimeoutA timeout for the component.
TransactionNumberThe transaction number for the current transaction.
URLLocation of the Datawire server to which transactions are sent.

Method List

The following is the full list of the methods of the component with short descriptions. Click on the links for further details.

CloseBatchSends a Close Batch request.
ConfigSets or retrieves a configuration setting.
DepositInquirySends a Deposit Inquiry request.
InterruptInterrupts the current action.
ResetClears all properties to their default values.

Event List

The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.

ConnectedFired immediately after a connection completes (or fails).
DataPacketInFired when receiving a data packet from the transaction server.
DataPacketOutFired when sending a data packet to the transaction server.
DisconnectedFired when a connection is closed.
ErrorInformation about errors during data delivery.
RevisionInquiryFired when a revision inquiry request is received from the host.
SpecificPollFired when a specific poll request is received from the host.
SSLServerAuthenticationFired after the server presents its certificate to the client.
SSLStatusShows the progress of the secure connection.
StatusShows the progress of the FDMS/Datawire connection.

Configuration Settings

The following is a list of configuration settings for the component with short descriptions. Click on the links for further details.

CreditBatchAmountDollar-and-cent amount ($$$$$$.cc) of all the credit card transactions in the batch.
DebitBatchAmountTotal dollar-and-cent amount ($$$$$$.cc) of all the debit card transactions in the batch.
DebitBatchCountNumber of debit items in the batch.
TransportProtocolSpecifies the transport protocol to use to communicate with the FDMS Omaha server.
CloseStreamAfterTransferIf true, the component will close the upload or download stream after the transfer.
ConnectionTimeoutSets a separate timeout value for establishing a connection.
FirewallAutoDetectTells the component whether or not to automatically detect and use firewall system settings, if available.
FirewallHostName or IP address of firewall (optional).
FirewallListenerIf true, the component binds to a SOCKS firewall as a server (IPPort only).
FirewallPasswordPassword to be used if authentication is to be used when connecting through the firewall.
FirewallPortThe TCP port for the FirewallHost;.
FirewallTypeDetermines the type of firewall to connect through.
FirewallUserA user name if authentication is to be used connecting through a firewall.
KeepAliveIntervalThe retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.
KeepAliveTimeThe inactivity time in milliseconds before a TCP keep-alive packet is sent.
LingerWhen set to True, connections are terminated gracefully.
LingerTimeTime in seconds to have the connection linger.
LocalHostThe name of the local host through which connections are initiated or accepted.
LocalPortThe port in the local host where the component binds.
MaxLineLengthThe maximum amount of data to accumulate when no EOL is found.
MaxTransferRateThe transfer rate limit in bytes per second.
ProxyExceptionsListA semicolon separated list of hosts and IPs to bypass when using a proxy.
TCPKeepAliveDetermines whether or not the keep alive socket option is enabled.
TcpNoDelayWhether or not to delay when sending packets.
UseIPv6Whether to use IPv6.
UseNTLMv2Whether to use NTLM V2.
CACertFilePathsThe paths to CA certificate files when using Mono on Unix/Linux.
LogSSLPacketsControls whether SSL packets are logged when using the internal security API.
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCACertsA newline separated list of CA certificate to use during SSL client authentication.
SSLCheckCRLWhether to check the Certificate Revocation List for the server certificate.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledCipherSuitesThe cipher suite to be used in an SSL negotiation.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLEnableRenegotiationWhether the renegotiation_info SSL extension is supported.
SSLIncludeCertChainWhether the entire certificate chain is included in the SSLServerAuthentication event.
SSLNegotiatedCipherReturns the negotiated ciphersuite.
SSLNegotiatedCipherStrengthReturns the negotiated ciphersuite strength.
SSLNegotiatedKeyExchangeReturns the negotiated key exchange algorithm.
SSLNegotiatedKeyExchangeStrengthReturns the negotiated key exchange algorithm strength.
SSLNegotiatedProtocolReturns the negotiated protocol version.
SSLProviderThe name of the security provider to use.
SSLSecurityFlagsFlags that control certificate verification.
SSLServerCACertsA newline separated list of CA certificate to use during SSL server certificate validation.
TLS12SignatureAlgorithmsDefines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True.
TLS12SupportedGroupsThe supported groups for ECC.
TLS13KeyShareGroupsThe groups for which to pregenerate key shares.
TLS13SignatureAlgorithmsThe allowed certificate signature algorithms.
TLS13SupportedGroupsThe supported groups for (EC)DHE key exchange.
AbsoluteTimeoutDetermines whether timeouts are inactivity timeouts or absolute timeouts.
FirewallDataUsed to send extra data to the firewall.
InBufferSizeThe size in bytes of the incoming queue of the socket.
OutBufferSizeThe size in bytes of the outgoing queue of the socket.
BuildInfoInformation about the product's build.
GUIAvailableTells the component whether or not a message loop is available for processing events.
LicenseInfoInformation about the current license.
UseInternalSecurityAPITells the component whether or not to use the system security libraries or an internal implementation.

Copyright (c) 2021 4D Payments Inc. - All rights reserved.
4D Payments SDK 2016 .NET Edition - Version 16.0 [Build 8017]