Title: VeriFone Universal API Concepts
1VeriFone Universal API Concepts
Helpdesk Training
2VeriFone Universal API Concepts
- What are advantages of VeriFone having a unified
standard? - What is the VeriFone Universal API?
- Which VeriFone products use the VeriFone
Universal API? - What is the structure of the VeriFone Universal
API? - What does the Response XML Element typically
contain? - What does the Request XML Element typically
contain?
3What is the VeriFone Universal API?
The VeriFone Universal API is a standardized
format to send and receive information from
VeriFone products. One of the earliest products
to employ this structure was the Rapid Internet
Transit Authority (RiTa), a product VeriFone
gained from the GOSoftware acquisition. That
product is now known officially as PAYware
Transact. Today, several of VeriFone's most
popular software based card acceptance products
are built on top of PAYware Transact. These
products have inherited the VeriFone Universal
API as their method of organizing data.
4What are advantages to VeriFone having a unified
standard?
- Ease of Troubleshooting Helpdesk/First-Line
Support can debug field issues on multiple
products with little difference in training
between products. - Ease of Migration integrators and partners can
easily migrate from one VeriFone product to
another making few, if any, code changes. - Ease of Development VeriFone can reuse their
code base across several platforms with
confidence that it will function in the expected
manner. This saves VeriFone time and money. - Ease of Quality Assurance Quality Assurance
can test multiple platforms using the same tests
and tools
5Products that utilize the VeriFone Universal API
- Softpay Connect
- PAYware Connect
- PAYware Merchant
- PAYware Mobile
- PAYware PC
- PAYware Report Viewer
- PAYware Settlement Manager
- PAYware SIM
- PAYware STS
- PAYware TIM
- PAYware Transact
6Structure of the VeriFone Universal API
The VeriFone Universal API uses XML 1.0 as its
document structure. Each request has TRANSACTION
as the Document Element, whereas, each response
has RESPONSE as the Document Element. The
request uses TRANSACTION as its tag because a
transaction is occurring between the sending
application and the VeriFone product. This
transaction is not necessarily going to be an
actual monetary transaction. Strictly speaking,
the word transaction does not mean a monetary
transaction. It can also refer to an exchange of
data. In other words, a request can contain an
administrative command or a reporting command,
and the tag will still be TRANSACTION. The
response should contain less information than the
request, and the returned fields will be more
predictable.
7Structure of the VeriFone Universal API
(Continued)
Each RESPONSE or TRANSACTION should contain an
element for each field that is being passed or
returned. Typically, the XML Element name is the
parameter or field being passed whereas, the XML
Text Content between the starting and ending tags
is the value being passed for that field or
parameter. In some cases, mostly with reporting,
some elements have nested children elements.
This is typically used for specifying search
fields and fields that you would like to be
returned in the report. The other exception to
the VeriFone Universal API is also in reporting.
Some responses for instance a PDF formatted
report, are returned in the format specified and
don't return as XML.
8Structure Example 1 (PAYware Connect Settlement)
Request ltTRANSACTIONgt ltFUNCTION_TYPEgtBATCHlt/FUN
CTION_TYPEgt ltCOMMANDgtSETTLElt/COMMANDgt ltUSER_IDgtA
PITest1lt/USER_IDgt ltUSER_PWgtlt/USER_PWgt ltCL
IENT_IDgt19500030001lt/CLIENT_IDgt ltMERCHANTKEYgt
lt/MERCHANTKEYgt lt/TRANSACTIONgt
Response ltRESPONSEgt ltRESPONSE_TEXTgtSettl
ement Scheduledlt/RESPONSE_TEXTgt
ltRESULT_CODEgt21lt/RESULT_CODEgt
ltTERMINATION_STATUSgtSUCCESSlt/TERMINATION_STATUSgt lt
/RESPONSEgt
9Structure Example 2 (Reporting API Exception in
Request)
Request ltTRANSACTIONgt ltCOMMANDgtTRANSEARCHlt/COM
MANDgt ltCLIENT_IDgt19500030001lt/CLIENT_IDgt
ltMERCHANTKEYgtlt/MERCHANTKEYgt
ltFUNCTION_TYPEgtREPORTlt/FUNCTION_TYPEgt
ltMAX_NUM_RECORDS_RETURNEDgt8000lt/MAX_NUM_RECORDS_RE
TURNEDgt ltFORMATgtdelimitedlt/FORMATgt
ltDELIMITERgt,lt/DELIMITERgt ltRETURN_FLD_HDRSgt1lt/RET
URN_FLD_HDRSgt ltRESPONSEFIELDSgt ltTRANS_DATE
/gt ltTRANS_TIME /gt ltBATCH_SEQ_NUM /gt
ltACCT_NUM /gt ltINVOICE /gt ltTROUTD /gt
ltCOMMAND /gt ltTIP_AMOUNT /gt ltTRANS_AMOUNT
/gt ltR_AUTH_CODE /gt lt/RESPONSEFIELDSgt
ltSEARCHFIELDSgt ltSTART_TRANS_DATEgt2010.11.01lt/S
TART_TRANS_DATEgt ltEND_TRANS_DATEgt2010.12.10lt/E
ND_TRANS_DATEgt lt/SEARCHFIELDSgt lt/TRANSACTIONgt
10Structure Example 3 (Reporting API Exception in
Response)
Response 2010.11.05,144456,6,4005550019,
,95141417,SALE,0.00,1.00,TAS357 2010.11.09,1403
50,7,5454545454, ,96003581,SALE,0.00,1.00,TA
S721 2010.11.15,131839,8,4005550019,123456
,97412801,SALE,0.00,1.00,TAS231 2010.11.15,13190
2,8,4005550019,123456,97412910,SALE,0.00,1.0
0, 2010.11.15,132015,8,3714498431,123456,
97413257,SALE,0.00,1.00, 2010.11.15,132103,-100
03,3714498431,123456,97413475,SALE,0.00,1.00
,AXS357 2010.11.15,132120,8,3714498431,123
456,97413547,SALE,0.00,1.00, 2010.11.15,155453,
8,5454545454, ,97455835,SALE,0.00,1.00,TAS81
4 2010.11.22,142302,9,4012000026,
,99075762,SALE,0.00,1.00,TAS987 2010.11.22,15054
4,9,4012000026, ,99089025,SALE,0.00,1.00,
2010.11.22,150621,9,4012000026,
,99089243,CREDIT,0.00,1.00,
11Typical Types of Data contained in a TRANSACTION
element
- Required Functional Data elements that are
necessary for every transaction type in order for
the VeriFone product to understand what type of
function is being accessed - Required Account Data elements used to locate
a specific account, site, or terminal in the
VeriFone product, as well as, the information
required to authenticate to the product. - Conditionally Required Data elements specific
to each command that are required in order to
process the transaction - Conditionally Optional Data elements that are
specific to each command but not necessary at
minimum to execute the command requested
12Types of TRANSACTION Data Example 1
13Types of TRANSACTION Data Example 2
14Elements you should almost always see in a
RESPONSE
- TERMINATION_STATUS If this is SUCCESS, the
operation requested has been completed
successfully. This does not denote that the
transaction had a positive response - RESULT The VeriFone product's interpretation
of the response being sent out. An example is
APPROVED for a payment transaction. - RESULT_TEXT normally this is unabridged from
whatever application or operation succeeded or
failed during the course of processing the
request - RESULT_CODE a numeric code that represents the
state of the response. Normally, the number
matches a specific RESULT
15Example of a RESPONSE 1
16Quick Quiz (to make sure you were paying
attention)
What are 3 products that use the VeriFone
Universal API? True or False? All requests that
have TRANSACTION as the Document element are
payment transactions. Where would you most
likely find an exception to the VeriFone
Universal API in VeriFone Products? What are 3
of the elements that you typically see in a
RESPONSE tag?
17End of Presentation
Created by Christopher Wallis