Connect Web Service
Transcript of Connect Web Service
BASYS Processing
Connect Web Service Version 1.6 Programmer’s Guide
P a g e | 1
Table of Contents Synapse Connect Web Service Version 1.6 ................................................................................................... 2
Programmer’s Guide ................................................................................................................................. 2
Introduction .............................................................................................................................................. 2
Getting Started .......................................................................................................................................... 4
Programming the Submit Function ........................................................................................................... 8
Transaction Types ............................................................................................................................... 10
Authorization Results (Declines and Error Checking) ............................................................................. 12
Response Actions by Programmer ...................................................................................................... 13
Query Function Call ................................................................................................................................. 14
Programming the Query Function .......................................................................................................... 17
Query Results (Not Found and Errors) .................................................................................................... 18
Void Function Call ................................................................................................................................... 19
Programming the Void Function ............................................................................................................. 22
Void Results (Not Found and Errors) ...................................................................................................... 23
Rolodex Usage ......................................................................................................................................... 24
Rolodex Functions ................................................................................................................................... 24
Rolodex Functions ................................................................................................................................... 25
Level 3 Transaction Items ....................................................................................................................... 27
Reporting ................................................................................................................................................ 28
AVS & CVV Response Codes .................................................................................................................... 29
Test Information ..................................................................................................................................... 31
P a g e | 2
Synapse Connect Web Service Version 1.6
Programmer’s Guide Synapse Corporation developed the Connect Web Service specifically for clients and programmers that
have written their own applications for order entry and invoicing purposes. Therefore, now there is an
alternative method of processing a credit card transaction that is more direct and customizable than the
use of the Connect interface and file transfer protocols. With the Connect Web Service, clients and
programmers can call a single function from their development language that creates simple Sale,
Credit, Authorizations or Void transactions.
This documentation describes the functionality of the Connect Web Service and encompasses these
desired design characteristics and simplified procedures by utilizing the Business Services Gateway.
URL: https://connect16.basyspro.net/connect.asmx
WSDL: https://connect16.basyspro.net/connect.asmx?WSDL
Introduction The Connect Web Service function calls allow the programmer to create transaction authorizations
(including Sales and Credits), Void previous transactions, and Query previous transactions to check their
existence and status. All transaction activity directly communicates with the merchant’s account at the
Gateway. Connect Web Service transaction activity as well as transactions created with the gateway’s
virtual terminal can be monitored and reported by logging into the merchant account and viewing
transaction historical reporting options.
Because the Connect Web Service works in conjunction with the merchant’s gateway account, many of
the tedious details normally associated with creating credit card transactions have been simplified. The
gateway can store default values for many transaction values including invoice number, customer
number and purchase order number. The Connect Web Service function call will apply these default
values to any transaction values that are left blank.
This integration of the Connect Web Service functions and the gateway could allow the programmer to
program only the Sale and/or Credit authorization functions into their application, and to require users
to visit the gateway and log into the merchant account for any transactions to void. In turn, a
transaction created at the gateway virtual terminal could be voided by an application using the Connect
Web Service. These mix-and-match integration options allow the programmer the greatest design
flexibility. Of course, all functionality (i.e., Sales, Credits, Void, Queries, Authorizations, Post Auths,
Marks, Uses and Returns) can be programmed into the programmer’s application at their option and
discretion.
Transaction settlement is a procedure that can be fully automated at the gateway. Therefore, no
programming is required to perform this function. The gateway merchant account can be set for manual
settlement, which requires the user to log into the merchant account and complete the settlement
process.
With the Connect Web Service, a programmer can incorporate truly integrated credit card processing
through a secured high-speed Internet connection with only a small amount of programming.
P a g e | 3
Example code for each programming language can be supplied by request, and small portions of code
are displayed later in this document.
It is recommended that the programmer and user also review the Business Service Gateway User’s
Manual for details on gateway usage and functionality. The user’s manual can be download by login into
the gateway and selecting the “User Manual” option from the “Help” menu.
NOTE
A demo merchant account is available for programmer testing and review, but an active merchant
account is required for live credit card processing.
P a g e | 4
Getting Started To begin, the Submit function of the Connect Web Service will be described by listing the function call’s
arguments, interactions with the gateway and merchant account, and use of the Sale and Credit
transaction types to accomplish credit card processing.
The screenshot below depicts one of the sample applications supplied with this document. Its function is
to allow the programmer to become acquainted with the arguments in a graphical form and to review
the programming code associated with the sample application for use in their application:
The edit box fields along the left side of the sample application (under the Authorize tab) represent the
full set of arguments that can be submitted in the Submit function call. Some values are always required
(e.g., Gateway Account ID, Password, Transaction Type), whereas others are completely optional and
have no effect on the transaction approval of qualification rate (only used for merchant reference—
Customer number, Note, etc.). Many values are required only in order to produce better merchant fee
rates by qualifying the transaction at a discount Level 2 or 3 (instead of Level 1, which occurs by
submitting only the required transaction minimum information).
NOTE
Please discuss Level 1, 2, and 3 qualification levels and rates with your account representative. These
rates—and the corresponding values that are required to be submitted with authorizations—vary based
on your industry type, card present status, and gateway settings.
Below is the Submit function table listing of field values (arguments), a brief description, and basic
requirements for Level 1, 2, and 3 merchant fee qualifications:
P a g e | 5
The returned response from the Submit function includes the following values:
The sample application (provided in SDK) for your programming language will be used to illustrate the
authorization process. Within the programmer’s application, credit card transaction information is
collected from the user’s transaction. This information, combined with the stored values of the
Merchant Account and Password values are used to populate the functions values.
P a g e | 6
The syntax for the Submit function call will differ depending on the programming language, but here is a
basic example of the call:
_Transaction.Syn_Act = tbAccount.Text
_Transaction.Syn_Pwd = tbPassword.Text
_Transaction.Tran_Type = tbTranType.Text
_Transaction.Tran_Amt = tbTranAmount.Text
_Transaction.Tran_Tax = tbTranTax.Text
_Transaction.Tran_Inv = tbTranInv.Text
_Transaction.Tran_PO = tbTranPO.Text
_Transaction.Tran_CNum = tbTranCust.Text
_Transaction.Tran_Note = tbTranNote.Text
_Transaction.Card_Num = tbCardNumber.Text
_Transaction.Card_Name = tbCardHolder.Text
_Transaction.Card_Exp = tbCardExp.Text
_Transaction.AVS_Street = tbAVSStreet.Text
_Transaction.AVS_Zip = tbAVSZip.Text
_Transaction.CVV_Num = tbCVV.Text
_Transaction.Proc_ID = _RequestID
_Transaction = _Connect.Submit(_Transaction)
Notes:
• When called the Submit Function returns a transaction object that echoes the originally
submitted information with the response fields populated.
P a g e | 7
In this example, we are using the “Demo-Syn” account and, therefore, the credit card authorization is
simulated (i.e., not live or charged).
NOTE
There are many different derivations of the type of response the programmer will receive when
processing credit card transactions. The next section will discuss the steps that might be implemented
by a programmer.
NOTE
The magnetic stripe codes (tracks 1 & 2) can be submitted as the credit card number in the case of retail
transactions. When submitted, the card holder and expiration date will be updated to the data encoded
in the tracks by the gateway. Better processing rates for retail merchants are obtained by submitting the
credit card swipe tracks.
P a g e | 8
Programming the Submit Function The programmer is provided the Connect Web Service free of charge.
The following programming steps are given as an example: (Code examples in VB.NET)
1) In Visual Studio.Net Add a Web Reference to
https://connect16.basyspro.net/connect.asmx?WSDL
2) In the Settings section of the programmer application (or other appropriate area), store the
user’s (i.e., merchant’s) unique Gateway Account ID and Password values.
3) After an invoice or order is ready for credit card processing, collect the required values for the
transaction. (Remember—submitting most or all transaction values will lower merchant
processing fees; see the level 1, 2, and 3 requirements.)
4) Create the Connect Web Service Object
5) Create the Connect Transaction Object
6) Define all required properties:
7) Execute the function.
8) Read the response and take appropriate action (record authorization code, message, etc.; or, if
declined or error message appears, direct user to other actions).
P a g e | 9
Example code clip from Visual Basic.NET
Dim _Connect As New Synapse.ConnectTest.Connect
Dim _Transaction As New Synapse.ConnectTest.Transaction
Dim _RequestID As String = Date.Now.ToOADate
Dim _Decimal As Decimal
If Decimal.TryParse(tbTranAmount.Text, _Decimal) Then
_Transaction.Tran_Amt = _Decimal
Else
tbTranAmount.Text = "Invalid Amount"
Return
End If
_Decimal = 0
If Decimal.TryParse(tbTranTax.Text, _Decimal) Then
_Transaction.Tran_Tax = _Decimal
Else
tbTranTax.Text = "Invalid Tax"
Return
End If
_Transaction.Syn_Act = tbAccount.Text
_Transaction.Syn_Pwd = tbPassword.Text
_Transaction.Tran_Type = tbTranType.Text
_Transaction.Tran_Amt = tbTranAmount.Text
_Transaction.Tran_Tax = tbTranTax.Text
_Transaction.Tran_Inv = tbTranInv.Text
_Transaction.Tran_PO = tbTranPO.Text
_Transaction.Tran_CNum = tbTranCust.Text
_Transaction.Tran_Note = tbTranNote.Text
_Transaction.Card_Num = tbCardNumber.Text
_Transaction.Card_Name = tbCardHolder.Text
_Transaction.Card_Exp = tbCardExp.Text
_Transaction.AVS_Street = tbAVSStreet.Text
_Transaction.AVS_Zip = tbAVSZip.Text
_Transaction.CVV_Num = tbCVV.Text
_Transaction.Proc_ID = _RequestID
_Transaction = _Connect.Submit(_Transaction)
tbRequestID.Text = _RequestID
tbProcessID.Text = _Transaction.Proc_ID
tbProcessResponse.Text = _Transaction.Proc_Resp
tbProcessCode.Text = _Transaction.Proc_Code
tbProcessMessage.Text = _Transaction.Proc_Mess
P a g e | 10
tbAVSCode.Text = _Transaction.AVS_Code
tbAVSMessage.Text = _Transaction.AVS_Resp
tbCVVCode.Text = _Transaction.CVV_Code
tbCVVMessage.Text = _Transaction.CVV_Resp
Transaction Types
Name Type Description
S Sale transaction This transaction type creates an authorization for the amount provided and immediately mark the transaction for settlement.
C Credit transaction This transaction type creates a refund transaction based on the amount provided.
V Void transaction This transaction type will void a preexisting and unsettled transaction. If the transaction has already settled, a Credit transaction will need to be issued.
Q Query transaction This transaction will return a transaction object with all available information about the transaction.
A Authorization transaction This transaction type allows for the user to change the charged amount after the Authorize has been processed by using a Post Auth. Requirements for this type are the same as a Sale transaction. This will not be settled until a Post Auth and/or Mark has been sent.
P Post auth transaction This transaction type changes a previous Authorization charge amount to a new amount given. Requirements are Account ID, Password, Transaction ID (from an Authorization) and Amount. *Amount changes are ONLY supported on Visa and MasterCard when AVS information has been submitted.
M Mark an Authorization/Post Authorization Requirements are Account ID, Password and Transaction ID (from an Authorization or Post Authorization).
U Default sale transaction Creates a new Sale transaction using default variables from a previous transaction. Any previous Transaction ID can be used. Requirements are Account ID, Password and Transaction ID.
R Default credit transaction Creates a new Credit transaction using default variables from a previous transaction that is of a Sale or Auth type. If the Amount is changed it cannot be greater than the original charged amount. Requirements are Account ID, Password and Transaction ID (from a previous
P a g e | 11
Sale or Auth). If “0.00” or “0” is sent for the Amount, the Gateway will use the original transaction amount.
P a g e | 12
Authorization Results (Declines and Error Checking) The following scenarios will describe the Submit function response to the following
transaction parameters:
1) Argument: Blank Account ID submitted
Response = “E”
Message = “No Account Specified”
2) Argument: Blank Password submitted
Response = “E”
Message = “No Password Specified”
3) Argument: Incorrect Account or Password
Response = “E”
Message = “Incorrect Account or Password”
4) Argument: Incorrect Transaction Type (S-Sale, C-Credit)
Response = “E”
Message = “Invalid Transaction Type”
5) Argument: Blank Transaction Type (S-Sale, C-Credit)
Response = “E”
Message = “Invalid Transaction Type”
6) Argument: Blank Amount Submitted
Response = “E”
Message = “Invalid Amount Specified”
7) Argument: Poorly Formatted Amount (e.g., 1.00.2)
Response = “E”
Message = “Invalid Amount Specified”
8) Argument: Poorly Formatted Tax (e.g., 0.2A)
Response = “E”
Message = “"Invalid Tax Amount”
9) Argument: Blank Card Number
Response = “E”
Message = “No Credit Card Number Specified “”
10) Argument: Blank Card Holder Name
Response = “E”
Message = “No Credit Card Holder Specified”
11) Argument: Blank Card Expiration Date
Response = “E”
Message = “No Credit Card Exp Date Specified”
12) Decline: Request = [assigned] Process = [assigned]
Response = “D” Code = “Decline”
Message = “Insufficient Funds” AVS Code = “A” AVS Message = “Address matches, ZIP code does
not. “CVV Code = “M” CVV Message = “Match”
13) Approval: Authorization complete
Request = {assigned}
Process = {assigned}
Response = “A”
P a g e | 13
Code = “123456” {assigned}
Message = “” {blank}
AVS Code = “A”
AVS Message = “Address matches, ZIP code does not.” (Not in Demo Mode)
CVV Code = “M “
CVV Message = “Match”
Response Actions by Programmer As indicated in the previous section (Authorization Results), four different response types need to be
interpreted and addressed by the programmer, and user action is recommended:
Response type Description
Argument Errors If the user or application attempts to submit a function argument that is not allowed, the function will return a response of “E” for error. Appropriate checking of user input and programmer values will reduce or eliminate these errors. If this type of error is encountered while using the programmer application, the program should suggest the appropriate course of action to the user (e.g., “Please enter the Card Number and try again”).
Connection Errors If the Internet connection is lost after the authorization is submitted, but prior to receiving a response, it is unknown if the transaction authorization was processed or not. The programmer can instruct the user to log into the gateway and manually verify the existence of the transaction (and void it, if appropriate) and suggest user action. OR, the programmer can use the Query function call described later in this document to check the response of the unknown transaction authorization status and produce action appropriate to the Query response. (The use for the Request ID to reference the transaction should now be apparent.)
Declined Transactions If the user or application receives a declined transaction response, the reason for the decline should be stated. The user should then be given the option to correct the transaction arguments or enter a different credit card or form of payment.
Approved Transactions If the user or application receives an approved transaction response, the program should record the authorization code for future reference. No further action is required by the user or program if the Gateway account is set for Auto-Settlement.
NOTE
Default values for the Tax, Invoice #, PO #, Customer #, Note, AVS Street, and AVS Zip Code can be set at
the gateway. If the arguments for any of the listed values are blank (Null) and default values are set for
the value at the gateway, then the default value for that field will be inserted into the transaction prior
to authorization. This feature was designed to assist the programmer and users with qualifications at
Levels 2 and 3 without the need to actually submit a per-transaction value.
P a g e | 14
Query Function Call The Query function call is used specifically by the programmer for the case where Internet connectivity
is lost in the middle of a transaction authorization process. Because of the connection loss, the
application (or user) cannot determine if the authorization request was received and processed by the
gateway and, therefore, if the response to this authorization was lost or if the authorization never
reached the gateway.
The Query function was designed to eliminate the need for the user to log into the gateway and check
the transaction in question.
Only three of the four listed query arguments are required for this transaction status check. The Account
ID and Password are required, and either the Request ID or the Process ID must also be submitted.
NOTE
In the case of a connection-lost error type, only the Request ID provided by the programmer prior to
attempting the authorization will be available to use as a Query argument. The Process ID was only
added for programmer convenience and is often used just for researching or re-checking a credit card
transaction status.
The Query function call arguments are as follows (only the Request ID or Process ID is submitted):
P a g e | 15
The return response from the Query function includes all of the transaction values:
The sample application (provided in SDK) for your programming language will be used to illustrate the
query process. Within the programmer’s application, the Account ID and Password are collected and the
Request ID (or, optionally, the Process ID) is submitted.
P a g e | 16
The syntax for the Query function call will differ depending on the programming language, but here is a
basic example of the call:
Dim _Connect As New Synapse.ConnectTest.Connect
Dim _Transaction As New Synapse.ConnectTest.Transaction
_Transaction.Syn_Act = tbQAccount.Text
_Transaction.Syn_Pwd = tbQPassword.Text
If Not String.IsNullOrEmpty(tbQRequestID.Text) Then _Transaction.Proc_ID = tbQRe
questID.Text
If Not String.IsNullOrEmpty(tbQProcessID.Text) Then _Transaction.Proc_ID = tbQPr
ocessID.Text
_Transaction = _Connect.Query(_Transaction)
P a g e | 17
Programming the Query Function The following programming steps are given as an example:
1) Upon receiving an error code response from a transaction authorization request, the programmer
should capture the corresponding Request ID for the transaction.
2) The program should then populate the Query function with the appropriate arguments, including the
Request ID for the transaction in question.
3) The Response from the Query function call should be used in place of the initial error return values (if
the transaction is found); otherwise, the initial transaction values should be reauthorized.
Example code clip from Visual Basic.NET:
Dim _Connect As New Synapse.ConnectTest.Connect
Dim _Transaction As New Synapse.ConnectTest.Transaction
_Transaction.Syn_Act = tbQAccount.Text
_Transaction.Syn_Pwd = tbQPassword.Text
If Not String.IsNullOrEmpty(tbQRequestID.Text) Then _Transaction.Proc_ID = tbQRe
questID.Text
If Not String.IsNullOrEmpty(tbQProcessID.Text) Then _Transaction.Proc_ID = tbQPr
ocessID.Text
_Transaction = _Connect.Query(_Transaction)
tbQTranType.Text = _Transaction.Tran_Type
tbQTranAmount.Text = _Transaction.Tran_Amt
tbQTranTax.Text = _Transaction.Tran_Tax
tbQTranInv.Text = _Transaction.Tran_Inv
tbQTranPO.Text = _Transaction.Tran_PO
tbQTranCust.Text = _Transaction.Tran_CNum
tbQTranNote.Text = _Transaction.Tran_Note
tbQCardNumber.Text = _Transaction.Card_Num
tbQCardHolder.Text = _Transaction.Card_Name
tbQCardExp.Text = _Transaction.Card_Exp
tbQAVSStreet.Text = _Transaction.AVS_Street
tbQAVSZip.Text = _Transaction.AVS_Zip
tbQCVV.Text = _Transaction.CVV_Code
tbQProcessID.Text = _Transaction.Proc_ID
tbQProcessResponse.Text = _Transaction.Proc_Resp
tbQProcessCode.Text = _Transaction.Proc_Code
tbQProcessCode.Text = _Transaction.Proc_Mess
tbQAVSCode.Text = _Transaction.AVS_Code
tbQAVSMessage.Text = _Transaction.AVS_Resp
tbQCVVCode.Text = _Transaction.CVV_Code
tbQCVVMessage.Text = _Transaction.CVV_Resp
P a g e | 18
Query Results (Not Found and Errors) The following scenarios will describe the Authorize function response to the following
transaction parameters:
1) Argument: Blank Account ID submitted
Response = “E”
Message = “No Account Specified”
2) Argument: Blank Password submitted
Response = “E”
Message = “No Password Specified”
3) Argument: Incorrect Account or Password
Response = “E”
Message = “Incorrect Account or Password”
4) Argument: Blank Transaction Type (S-Sale, C-Credit)
Response = “E”
Message = “Invalid Transaction Type”
5) Argument: Blank Request or Process ID
Response = “E”
Message = “No Request or Process ID Submitted”
6) Not Found: Request does not match gateway transaction
Response = “E”
Message = “Transaction Not Found”
7) Found: Request matches a gateway transaction
(ALL transaction values returned)
P a g e | 19
Void Function Call The Void function call is used specifically by the programmer for the case where a previously Approved
transaction needs to be voided. Optionally, the user may log into the merchant account and void a
transaction manually. The Void function was designed to eliminate the need for the user to log into the
gateway and check the transaction in question.
Only three void arguments are required for this transaction to change to the void status. The Account ID
and Password are required, and the Process ID must also be submitted.
The Void function call arguments are as follows: (Only the Process ID is submitted)
The return response from the Void function includes all of the transaction values:
P a g e | 20
The sample application (provided in SDK) for your programming language will be used to illustrate the
void process. Within the programmer’s application, the Account ID and Password are collected, and the
Process ID are submitted.
P a g e | 21
The syntax for the Void function call will differ depending on the programming language, but here is a
basic example of the call:
Dim _Connect As New Synapse.ConnectTest.Connect
Dim _Transaction As New Synapse.ConnectTest.Transaction
_Transaction.Syn_Act = tbvAccount.Text
_Transaction.Syn_Pwd = tbVPassword.Text
_Transaction.Proc_ID = tbVProcessID.Text
_Transaction.Tran_Type = "V"
_Transaction = _Connect.Submit(_Transaction)
P a g e | 22
Programming the Void Function Example code clip from Visual Basic.NET:
Dim _Connect As New Synapse.ConnectTest.Connect
Dim _Transaction As New Synapse.ConnectTest.Transaction
_Transaction.Syn_Act = tbvAccount.Text
_Transaction.Syn_Pwd = tbVPassword.Text
_Transaction.Proc_ID = tbVProcessID.Text
_Transaction.Tran_Type = "V"
_Transaction = _Connect.Submit(_Transaction)
tbVTranType.Text = _Transaction.Tran_Type
tbVTranAmount.Text = _Transaction.Tran_Amt
tbVTranTax.Text = _Transaction.Tran_Tax
tbVTranInv.Text = _Transaction.Tran_Inv
tbVTranPO.Text = _Transaction.Tran_PO
tbVTranCust.Text = _Transaction.Tran_CNum
tbVTranNote.Text = _Transaction.Tran_Note
tbVCardNumber.Text = _Transaction.Card_Num
tbVCardHolder.Text = _Transaction.Card_Name
tbVCardExp.Text = _Transaction.Card_Exp
tbVAVSStreet.Text = _Transaction.AVS_Street
tbVAVSZip.Text = _Transaction.AVS_Zip
tbVCVV.Text = _Transaction.CVV_Code
tbVProcessID.Text = _Transaction.Proc_ID
tbVProcessResponse.Text = _Transaction.Proc_Resp
tbVProcessCode.Text = _Transaction.Proc_Code
tbVProcessCode.Text = _Transaction.Proc_Mess
tbVAVSCode.Text = _Transaction.AVS_Code
tbVAVSMessage.Text = _Transaction.AVS_Resp
tbVCVVCode.Text = _Transaction.CVV_Code
tbVCVVMessage.Text = _Transaction.CVV_Resp
P a g e | 23
Void Results (Not Found and Errors) The following scenarios will describe the Authorize function response to the following
transaction parameters:
1) Argument: Blank Account ID submitted
Response = “E”
Message = “No Account Specified ”
2) Argument: Blank Password submitted
Response = “E”
Message = “No Password Specified”
3) Argument: Incorrect Account or Password
Response = “E”
Message = “Incorrect Account or Password”
4) Argument: Blank Process ID
Response = “E”
Message = “No Request or Process ID Submitted”
5) Not Found: Request does not match gateway transaction
Response = “E”
Message = “Invalid Transaction ID”
6) Found: Request matches a gateway transaction
(Transaction voided & ALL transaction values)
P a g e | 24
Rolodex Usage The Rolodex section of the Gateway allows the user to record customer information for those
customers that will have recurring business (transactions) with the user’s company. Customer
information—including contact information (e.g., name, address, phone), transaction information (e.g.,
customer number, default PO), and credit card information (e.g., card number, expiration)—can all
be stored in the Rolodex for your account and used later to create new transactions without
submitting this stored information.
Rolodex Functions Below are the current Rolodex functions with a brief description of their fu nction.
GetRolodexRecord Returns a Rolodex record for the Reference number passed. Required arguments: Account, Password and Reference (e.g. “Demo-Syn”,”Demo123”, “123”).
SaveRolodex Allows for saving an updated Rolodex record. Required arguments: Account, Password and Record (Synapse.Connect.Record) (e.g. “Demo-Syn”, “Demo123”, _Record).
SaveRolodexCard Allows for saving an additional Credit Card to the Rolodex record. Required arguments: Account, Password, RolodexID and RolodexCreditCard (Synapse.Connect.RolodexCreditCard) (e.g. “Demo-Syn”, “Demo123”, “123456”, _RolodexCreditCard).
SubmitWithRolodexCardID Submit a transaction using a preexisting RolodexCreditCard. Required arguments: _Transaction and RolodexCardID (e.g. _Transaction and “123456”).
P a g e | 25
Rolodex Functions Example code shown in Visual Basic .Net
GetRolodexRecord
Dim _connect As New Synapse.Connect.Connect '-- create webservice object
Dim _record As New Synapse.Connect.Record
_record = _connect.GetRolodexRecord("Demo-Syn", "Demo123", "123")
Synapse.Connect.Record Object
SaveRolodex
Dim _connect As New Synapse.Connect.Connect '-- create webservice object
Dim _record As New Synapse.Connect.Record '-- Can Populate using GetRolodexRecord
'-- Modify _record
_record.Business = new Business()
_record.Business.Address.AddressLine1 = "123 Main St"
_record.Business.Address.City = "Overland Park"
_record.Business.Address.State = "KS"
_record.Reference = "123"
_record.Contact = new Contact()
_record.Contact.FirstName = "John"
_record.Contact.LastName = "Smith"
_record.PO = "123456"
_record.Invoice = "759426"
P a g e | 26
_connect.SaveRolodex("Demo-Syn", "Demo123", _record)
SaveRolodexCard
Dim _connect As New Synapse.Connect.Connect '-- create webservice object
Dim _record As New Synapse.Connect.Record '-- Populate using GetRolodexRecord
Dim _creditcard As New Synapse.Connect.RolodexCreditCard
'-- Populate Card
_creditcard.Holder = "John Smith"
_creditcard.Number = "4111111111111111"
_creditcard.ExpDate = "12/16"
_creditcard.Address = "123 Main St"
_creditcard.City = "Overland Park"
_creditcard.State = "KS"
_creditcard.Zip = "66212"
_connect.SaveRolodexCard("Demo-Syn", "Demo123", _record.ID, _creditcard)
SubmitWithRolodexCardID
Dim _connect As New Synapse.Connect.Connect '-- create webservice object
Dim _tran As New Synapse.Connect.Transaction
Dim _record As New Synapse.Connect.Record '-- Populate using GetRolodexRecord
_tran.Syn_Act = "Demo-Syn"
_tran.Syn_Pwd = "Demo123"
_tran.Tran_Type = "S"
_tran.Tran_Amt = 1.0
_tran = _connect.SubmitWithRolodexCardID(_tran, _record.CreditCards(0).CardID)
P a g e | 27
Level 3 Transaction Items It is now possible to submit your own level 3 transaction items if you choose. If you do not submit a
transaction item, a default item can be added. The following code will show you how to create a
transaction with a transaction item. An error will be returned if total transaction amount or tax does not
equal total transaction items amount or tax.
Dim _connect As New Synapse.Connect.Connect
Dim _transaction As New Synapse.Connect.Transaction
Dim _item As New Synapse.Connect.TransactionItem
Dim _items As New Generic.List(Of Synapse.Connect.TransactionItem)
_transaction.Syn_Act = "Demo-Syn"
_transaction.Syn_Pwd = "Demo123"
_transaction.Card_Name = "John Smith"
_transaction.Card_Num = "4111111111111111"
_transaction.Card_Exp = "1216"
_transaction.Tran_Amt = "12.75"
_transaction.Tran_Tax = "0.61"
_item.ItemNumber = "MISC"
_item.Description = "Business Supplies"
_item.Quantity = 1
_item.UnitOfMeasure = "NMB" 'each
_item.UnitCost = 12.14
_item.Tax = 0.61
_items.Add(_item)
_transaction.Items = _items.ToArray
_transaction = _connect.Submit(_transaction)
P a g e | 28
Reporting Connect 1.6 now includes three report options: Transactions by Date, Transactions by
Batch, and Batches by Date.
Transactions by Date
This will return an array of QueryTransaction objects. The object will contain all information about each
transaction on the selected date.
Dim _connect As New Synapse.Connect.Connect
Dim _transactions() As Synapse.Connect.QueryTransaction
_transactions = _connect.GetTransactionsByDate("Demo-
Syn", "Demo123", "1/11/2011")
Transactions by Batch
This will return an array of QueryTransaction objects. The object contains all information about each
transaction in the selected batch.
Dim _connect As New Synapse.Connect.Connect
Dim _transactions() As Synapse.Connect.QueryTransaction
_transactions = _connect.GetTransactionsByBatch("Demo-Syn", "Demo123", "385")
Batches by Date
This will return an array of Batch objects. The object contains all information about each Batch that
occurred on the selected date.
Dim _connect As New Synapse.Connect.Connect
Dim _batches() As Synapse.Connect.Batch
_batches = _connect.GetBatchesByDate("Demo-Syn", "Demo123", "1/11/2011")
P a g e | 29
AVS & CVV Response Codes Listed in the following sections are the different response codes that may be returned by
the Synapse Gateway in response to either the AVS or CVV transaction data submitted.
WARNING
These codes and descriptions do change periodically.
AVS Response Codes – Visa
Code Description
A Address matches, ZIP code does not.
B Address matches, ZIP not verified.
C Address and ZIP code not verified due to incompatible formats.
D Address and ZIP code match (International only).
F Address and ZIP code match (U.K. only).
G Address not verified for International transaction (International only).
I Address not verified (International only).
M Address and ZIP code match (International only)N Neither the ZIP nor the address matches.
P ZIP matches, address not verified.
R Issuer's authorization system is unavailable; try again later. (Domestic only).
S AVS not supported at this time (Domestic only).
U Unable to perform address verification because either address information is unavailable or Issuer does not support AVS (Domestic only).
Y Address & 5-digit or 9-digit ZIP match (Domestic only).
Z Either 5-digit or 9-digit ZIP matches; address does not or is not included in request.
AVS Response Codes - MasterCard
Code Description
A Address matches, ZIP code does not.
N Neither the ZIP nor the address matches. R Retry; system unable to process.
S AVS not supported at this time.
U No data from issuer/Authorization system. W For U.S. addresses, 9-digit code matches, but address does not; for address outside of
U.S., the ZIP code matches, address does not. X For US: Exact, all digits match, 9-digit ZIP code and address. For non-US: exact postal code
and address match. Y For US: Exact, all digits match, 5-digit ZIP code and address. Z 5-digit ZIP code matches, but address does not.
AVS Response Codes - American Express
Code Description
A Address only is correct.
P a g e | 30
M
N Neither the ZIP nor the address matches.
R System unavailable; retry.
S AVS not supported at this time.
U The necessary information is not available; account number is neither U.S. nor Canadian.
Y Yes, address and ZIP code are both correct.
Z ZIP code only is correct.
AVS Response Codes - Discover
Code Description
A Address and 5-digit ZIP code match.
G Address info not verified for international transaction Neither the ZIP nor the address matches.
S AVS not supported at this time.
T 9-digit ZIP code matches, but address does not.
U Retry, system unable to process.
W No data from issuer/authorization.
X Address and 9-digit ZIP code match.
Y Address only matches.
Z 5-digit ZIP code matches, but address does not.
CVD Response Codes (Visa, MasterCard and Discover)
Code Description
M Match
N No Match
P Not Processed
S CID should be on the Card, but the Merchant has indicated that it is not present.
U Issuer unable to Process request.
Issuer is not certified.
CVD Response Codes (American Express)
Code Description
Y Match
N No Match
U Issuer unable to process request.
P a g e | 31
Test Information Listed below are test card numbers that can be used for transactions. Also listed below
are specific dollar amounts that will return different responses.
Test Credit Card Numbers
VI 4111111111111111
VI - Purchasing 4055011111111111
MC 5454545454545454
MC - Purchasing 5405222222222226
AE 371449635398431
DS 6011000995500000
Diners 36438999960016
JCB 3566002020140006
Credit Card Track Samples
Visa Consumer Card
%B4788250000028291^CHASE PAYMENTECH TEST
CARD^15121015432112345601?;4788250000028291=15121015432112345601?
Visa Purchasing Card
%B4055011111111111^CHASE
PAYMENTECH^1512105432112345678?;4055011111111111=15121015432112345678?
MC Consumer Card
%B5454545454545454^CHASE PAYMENTECH TEST
CARD^15121015432112345601?;5454545454545454=15121015432112345601?
MC Purchasing Card
%B5405222222222226^CHASE
PAYMENTECH^15121015432112345678?;5405222222222226=15121015432112345678?
American Express
%B371449635398431^CHASE PAYMENTECH TEST
CARD^15121015432112345678?;371449635398431=15121015432112345678?
Discover Consumer Card
%B6011000995500000^CHASE PAYMENTECH TEST
CARD^15121015432112345678?;6011000995500000=15121015432112345678?
JCB Consumer Card
%B3566002020140006^CHASE
PAYMENTECH^15121015432112345678?;3566002020140006=15121015432112345678?
P a g e | 32
Diners Consumer Card
%B36438999960016^CHASE PAYMENTECH TEST
CARD^15121015432112345601?;36438999960016=15121015432112345601?
Transaction Amount Responses
*.01 Declined Do Not Honor
*.02 Declined Refer to card issuer
*.03 Declined Pick up
*.04 Declined Re-enter transaction
*.05 Declined Invalid Card Number
*.06 Declined Invalid expiry date
*.12 Declined Invalid amount
*.16 Declined Lost/stolen card
9.67 Partial Auth (Approved Amt $2.00)
AVS Response Codes
Changing the zip code to the following values will result in different AVS Response Codes. Responses
descriptions may vary depending on card type. Please see AVS & CVV Response code section on page 30.
11111 A 11112 S 11113 T
22222 M 22223 W
33333 N 33334 X
44444 R 44445 B
55555 U 55556 P
66666 Y 66667 C
77777 Z 77778 D
88888 G 88889 I
CVV Responses Codes
Changing the CVV number will result in different CVV Response Codes
111 M
222 N
333 P
P a g e | 33
444 S
555 U
777 N
2222 Y (AMEX ONLY)
1111 N (AMEX ONLY)
9999 U (AMEX ONLY)