Post.ISO8583

Codix has implemented a .Net library that integrates with ACI Postilion™ system using its most familiar language, PostBridge.

The Post.ISO8583 library allows a .Net developer to use C#, VB.Net or managed C++ to easily and effortlessly communicate with a PostBridge™ interchange in order to send or receive financial transactions.

The Post.ISO8583 library comes with a chm help file and several samples to get you started, including a web-based PostBridge simulator.

Here is an example of responding to a network sign-on message

// Create a new reply message.
Messages.Postbridge.Bitmap.Message reply = new Messages.Postbridge.Bitmap.Message();// Set MTI.
reply.MessageType = MessageTypeEnum.NetworkManagementResponse;// Copy basic fields from request with field numbers or field enumeration.
reply.CopyField(request, 7).CopyField(request, 11).CopyField(request, 12).CopyField(request, 13);
reply.CopyField(request, MessageFields.NetworkManagementInformationCode);// Approved.
reply.ResponseCode = ResponseCodeEnum.Approved;

This is an example that shows how to approve any incoming transaction

// Create an appopriate MTI for the response.
response.MessageType = MessageType.GetResponse(request.MessageType);// Copy over the basic response fields.
response.CopyField(request, MessageFields.EchoData);
response.CopyPrivateField(request, PrivateFields.SwitchKey);// Approve the transaction.
response.ResponseCode = ResponseCodeEnum.Approved;

Here is an example of sending a linked account inquiry

// Create a request message.
Postbridge.Bitmap.Message request = new Messages.Postbridge.Bitmap.Message();// Linked account inquiry.
request.MessageType = MessageTypeEnum.AuthorizationRequest;
request.ProcessingCode = new ProcessingCode(TransactionTypeEnum.LinkedAccountInquiry, 
AccountTypeEnum.Default,
AccountTypeEnum.Default); request.Set(MessageFields.PAN).Content = "5044070000253211"; request.TransactionAmount = 0;// Set fields using a simple assignment or a Set() method. request.TransmissionDateTime = DateTime.Now; request.Set(MessageFields.SystemsTraceAuditNumber).Content = "123456";// Date and time fields can be set using .Net methods.// Setting the field content is still possible. request.LocalTransactionTime = DateTime.Now; request.LocalTransactionDate = DateTime.Now; request.ExpirationDate = Convert.ToDateTime("2048/01/01"); request.POSEntryMode = new POSEntryMode(PANEntryModeEnum.Manual,
PINEntryCapabilityEnum.Unknown); request.POSConditionCode = POSConditionCodeEnum.NormalPresentment; request.Set(MessageFields.RetrievalReferenceNumber).Content = "123456789012"; request.Set(MessageFields.CardAcceptorTerminalID).Content = "00004000"; request.Set(MessageFields.CardAcceptorID).Content = "123456789012345"; request.CardAcceptorNameLocation = new CardAcceptorNameLocation("12345678901234567890123",
"ATHENS"
,
"NA"
, "GR"); request.Set(MessageFields.TransactionCurrencyCode).Content = "978"; request.ServiceRestrictionCode = new ServiceRestrictionCode(AreaOfUsageEnum.InternationalCard, AuthorizationProcessingRequirementsEnum.NormalAuthorization, ServicesAndPINRequirementsEnum.NoRestrictions); request.POSDataCode = new POSDataCode(CardDataInputCapabilityEnum.ManualNoTerminal, CardholderAuthenticationCapabilityEnum.NoElectronicAuthentication, CardCaptureCapabilityEnum.None, OperatingEnvironmentEnum.NoTerminalUsed, CardholderPresentEnum.CardholderPresent, CardPresentEnum.CardNotPresent, CardDataInputModeEnum.ManualNoTerminal, CardholderAuthenticationMethodEnum.NoElectronicAuthentication, CardholderAuthenticationEntityEnum.NotAuthenticated, CardDataOutputCapabilityEnum.Unknown, TerminalOutputCapabilityEnum.Unknown, PINCaptureCapabilityEnum.NoPINCaptureCapability, TerminalOperatorEnum.Administrative, TerminalTypeEnum.AdministrativeTerminal);

PostBridge Library Highlights

  • Use the PostBridge™ application-level protocol by importing a single library.
  • Access fields using field names or enumerations.
  • Use helper methods to construct composite fields, like the processing code, card acceptor name & location, POS data code and others.
  • Royalty-free license for your end-users.
  • Create new ISO8583-based protocols easily or change existing ones (Enterprise license only).
  • Implemented using .Net 4.