4D Payments SDK 2016 .NET Edition
4D Payments SDK 2016 .NET Edition
Questions / Feedback?

FDMSRegister Component

Properties   Methods   Events   Configuration Settings   Errors  

The FDMSRegister component is a tool used to Register and Activate a merchant account with the Datawire VXN. This allows you to send transactions through the Datawire system to the First Data Merchant Services (FDMS) processor. This component is also used to find the appropriate URLs to which authorizations and settlements will be posted.




The FDMSRegister component is a tool used to Register and Activate a merchant account with the Datawire VXN. This component communicates with the Datawire VXN transaction transport network, and allows you to set up your account so that credit card transactions made with the FDMSECommerce, FDMSRetail, and FDMSSettle components will pass through Datawire and ultimately reach the First Data Merchant Services (FDMS) transaction processor. Before you can charge a single credit card, you must Register and Activate your FDMS account, and then run a ServiceDiscovery to find acceptable URLs, which you will ultimately use to send credit card authorizations.

The first thing you must do is Register your merchant account. First Data Merchant Services will provide you with a MerchantNumber and a MerchantTerminalNumber, which are required for registering with Datawire. If you are registering on the Rapid Connect platform you must also set the GroupId configuration setting. In addition, you will need to set the TransactionNumber with a unique value (the TransactionNumber should be incremented for each transaction you send to the Datawire VXN). The example below also sets the URL to point to the Datawire test server.

  FDMSRegister.MerchantNumber = "000000999990";
  FDMSRegister.MerchantTerminalNumber = "555555";
  //FDMSRegister.Config("GroupId=FDMS_Assigned_GroupId"); //Rapid Connect Only
  FDMSRegister.TransactionNumber = "1" 'any unique number will do.
  FDMSRegister.URL = "https://stagingsupport.datawire.net/staging_expresso/SRS.do"

If the registration was successful, the DatawireStatus will contain "OK", and the DatawireId will contain the new Id which you must save and send with every subsequent transaction. The PrimaryDiscoveryURL and SecondaryDiscoveryURL properties will also be filled after a successful authorization. These URLs should be saved for later, and used to perform ServiceDiscovery.

After registering, you must immediately Activate the merchant. If you wait too long, your registration will time out, and you will have to contact Datawire to have them reset your account so that you may register again. When activating the merchant, the same properties are required as for the Register method, with the addition of the DatawireId property. Since the call to Register filled the DatawireId property with the correct value, all we need to do now is:

  FDMSRegister.TransactionNumber = 2

After registering and activating the account, you may now move on to Service Discovery. The Register method will return both a PrimaryDiscoveryURL and a SecondaryDiscoveryURL. Use these URLs with the ServiceDiscovery method to retrieve a list of valid transaction URLs. For instance:


After a successful ServiceDiscovery the DatawireStatus will be "OK". The discovered URLs will be listed in the ServiceProviders array property. At this time, you should Ping each of these URLs and sort them in order of fastest to slowest response time. You will use the URL with the fastest response time to authorize transactions with FDMSRetail or FDMSECommerce. If the first URL stops responding, you should remove the URL and switch to the next URL in the list. The following example shows how to ping each of the ServiceProviders (you must save and sort the results yourself).

  for (int i = 0; i < FDMSRegister.ServiceProviders.Length; i++) {
		Console.WriteLine(FDMSRegister.ServiceProviders[i] + " = " + FDMSRegister.PingResponseTime);

If your list of servers becomes empty, perform ServiceDiscovery and the subsequent steps to re-populate the list of available servers.

You may now use the DatawireId and the Service Provider URLs retrieved by this component to submit transactions using the FDMSECommerce, FDMSRetail, and FDMSSettle components.

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.
DatawireIdIdentifies the merchant to the Datawire System.
DatawireReturnCodeContains an error code providing more details about the DatawireStatus received.
DatawireStatusStatus of the communication with Datawire.
FDMSPlatformSpecifies the FDMS platform that the transactions will be processed on.
MerchantNumberA unique number used to identify the merchant within the FDMS and Datawire systems.
MerchantTerminalNumberUsed to identify a unique terminal within a merchant location.
PingResponseTimeReturned after calling the Ping method.
PrimaryDiscoveryURLURL to use with the ServiceDiscovery method to retrieve a list of service provider URLs.
ProxyA set of properties related to proxy access.
SecondaryDiscoveryURLURL to use with the ServiceDiscovery method to retrieve a list of service provider URLs.
ServiceProvidersArray containing a list of URLs which may be used to send credit card transactions to.
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.
TransactionNumberUniquely identifies the 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.

ActivateActivates a merchant account on the Datawire VXN.
ConfigSets or retrieves a configuration setting .
InterruptInterrupts the current action.
PingUsed to find the fastest service provider to use to send credit card transactions.
RegisterRegisters a merchant account on the Datawire VXN.
ResetClears all properties to their default values.
ServiceDiscoveryRetrieves transaction URLs from Datawire.

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).
DisconnectedFired when a connection is closed.
ErrorInformation about errors during data delivery.
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.

NumRetriesNumber of times to retry registration.
RetryIntervalInterval in seconds to wait between registration retry attempts.
GroupIdThird Party Group Identifier assigned by FDMS.
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).
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.
KeepAliveTimeThe inactivity time in milliseconds before a TCP keep-alive packet is sent.
KeepAliveIntervalThe retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.
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 TCP 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.
TCPKeepAliveDetermines whether or not the keep alive socket option is enabled.
UseIPv6Whether to use IPv6.
TcpNoDelayWhether or not to delay when sending packets.
CACertFilePathsThe paths to CA certificate files when using Mono on Unix/Linux.
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLIncludeCertChainWhether the entire certificate chain is included in the SSLServerAuthentication event.
SSLProviderThe name of the security provider to use.
SSLSecurityFlagsFlags that control certificate verification.
TLS12SignatureAlgorithmsDefines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True.
OpenSSLCADirThe path to a directory containing CA certificates.
OpenSSLCAFileName of the file containing the list of CA's trusted by your application.
OpenSSLCipherListA string that controls the ciphers to be used by SSL.
OpenSSLPrngSeedDataThe data to seed the pseudo random number generator (PRNG).
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.
CodePageThe system code page used for Unicode to Multibyte translations.

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