0% found this document useful (0 votes)
25 views84 pages

MoneyGram AgentConnect - HMB

The AgentConnect® specification by MoneyGram provides guidelines for integrating their money transfer services with point-of-sale systems. It includes technical details on XML messaging, API specifications, and development support, emphasizing security and flexibility in application design. The document is confidential and intended for authorized recipients under a Non-Disclosure Agreement.

Uploaded by

Syed Adnan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views84 pages

MoneyGram AgentConnect - HMB

The AgentConnect® specification by MoneyGram provides guidelines for integrating their money transfer services with point-of-sale systems. It includes technical details on XML messaging, API specifications, and development support, emphasizing security and flexibility in application design. The document is confidential and intended for authorized recipients under a Non-Disclosure Agreement.

Uploaded by

Syed Adnan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 84

®

AgentConnect
Introduction to AgentConnect
Version 13.05
2013

Habib Metro Bank


Introduction 13.05

This AgentConnect® specification and the information contained herein is the confidential
property of MoneyGram International, Inc. (MoneyGram), and is loaned to the recipient solely for
use in integrating the MoneyGram System with the recipient's point-of-sale (POS) system as
authorized by a Non-Disclosure Agreement entered between MoneyGram and the recipient. This
document is also protected as an unpublished work under copyright law, and no part hereof may
be compiled, distributed or disclosed to any third party without the prior written consent of
MoneyGram except to persons having a legitimate need to know to integrate to the
AgentConnect® System with the recipient's POS system as authorized in a POS license.
Other companies may have patents that apply to Money transfer or to the use of AgentConnect ®
within certain features. MoneyGram is not responsible for violations of any third party intellectual
property rights by use of AgentConnect®.
The recipient's rights to integrate the AgentConnect® System with its POS system and/or using
MoneyGram's confidential information will cease immediately upon termination of the Network
Agreement or the Biller Agreement between MoneyGram and the recipient. This document must be
returned upon the request of MoneyGram or upon termination of the Network Agreement or the
Biller Agreement between MoneyGram and the recipient.

Habib Metro Bank


ii ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05

Table of Contents
Introduction .............................................................................................. 1
Technologies ............................................................................................. 2
XML Schema and WSDL ................................................................................................. 2
Schema.......................................................................................................................... 2
WSDL............................................................................................................................. 2
AgentConnect XML Schema ........................................................................................... 3
AgentConnect Messages ................................................................................................ 3
Format ........................................................................................................................... 4
SOAP ............................................................................................................................. 4
Message Headers........................................................................................................... 5
Error Messages .............................................................................................................. 8
International Character Support.................................................................................. 10

High Network Availability ........................................................................ 11


High Availability with Internet .................................................................................... 11

Product Development Cycle ..................................................................... 12


Preliminary Investigation ............................................................................................ 12
Detailed Investigation ................................................................................................. 13
Development ............................................................................................................... 13
Quality Assurance........................................................................................................ 13
Full Production and Market Launch ............................................................................. 13
Submitting Problems to MoneyGram During Development .......................................... 15

Pilot and Support Plans ........................................................................... 16


Pilot Plan ..................................................................................................................... 16
Support Plan ................................................................................................................ 16

Installing the AgentConnect Simulator .................................................... 17


Sample Test ID letter and Instruction to use the Simulator: ................... 18
Additional information on Proxy configuration: ....................................... 19
PCI Compliance ....................................................................................... 21
Initialization and Maintenence ................................................................ 23
Business Purpose ........................................................................................................ 23
API Flows and Processes ............................................................................................. 23

APIs ........................................................................................................ 25
1. profile ...................................................................................................................... 26
profileRequest .............................................................................................................. 26
Habib Metro Bank
©2013 MoneyGram iii
Proprietary and confidential
Introduction 2013

Field Summary .......................................................................................................... 26


Field Detail ................................................................................................................ 27
profileResponse ............................................................................................................ 28
Field Summary .......................................................................................................... 28
Field Detail ................................................................................................................ 29
2. codeTable ................................................................................................................ 31
codeTableRequest ......................................................................................................... 31
Field Summary .......................................................................................................... 31
Field Detail ................................................................................................................ 32
codeTableResponse ....................................................................................................... 33
Field Summary .......................................................................................................... 33
Field Detail ................................................................................................................ 34
3. countryInfo ............................................................................................................. 42
countryInfoRequest....................................................................................................... 42
Field Summary .......................................................................................................... 42
Field Detail ................................................................................................................ 43
countryInfoResponse .................................................................................................... 44
Field Summary .......................................................................................................... 44
Field Detail ................................................................................................................ 45
4. currencyInfo ............................................................................................................ 47
currencyInfoRequest ..................................................................................................... 47
currencyInfoResponse ................................................................................................... 47
Field Summary .......................................................................................................... 47
Field Detail ................................................................................................................ 48
5. stateProvinceInfo .................................................................................................... 49
stateProvinceInfoRequest .............................................................................................. 49
Field Summary .......................................................................................................... 49
Field Detail ................................................................................................................ 50
stateProvinceInfoResponse ............................................................................................ 51
Field Summary ........................................................................................................ 51`
Field Detail ................................................................................................................ 52
6. translations ............................................................................................................. 53
translationsRequest ...................................................................................................... 53
Field Summary .......................................................................................................... 53
Field Detail ................................................................................................................ 54
translationsResponse .................................................................................................... 55
Field Summary .......................................................................................................... 55
Habib Metro Bank
Field Detail ................................................................................................................ 56

iv ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05

7. doddFrankStateRegulatorInfo ................................................................................. 60
doddFrankStateRegulatorInfoRequest ............................................................................. 60
Field Summary .......................................................................................................... 60
Field Detail ................................................................................................................ 61
doddFrankStateRegulatorInfoResponse ........................................................................... 62
Field Summary .......................................................................................................... 62
Field Detail ................................................................................................................ 63
8. variableReceiptInfo ................................................................................................. 64
variableReceiptInfoRequest ............................................................................................ 64
Field Summary .......................................................................................................... 64
Field Detail ................................................................................................................ 65
variableReceiptInfoResponse .......................................................................................... 66
Field Summary .......................................................................................................... 66
Field Detail ................................................................................................................ 67
9. industry ................................................................................................................... 68
industryRequest ........................................................................................................... 68
Field Summary ................................................................ Error! Bookmark not defined.
Field Detail ................................................................................................................ 69
industryResponse ......................................................................................................... 70
Field Summary .......................................................................................................... 70
Field Detail ................................................................................................................ 71

Table of Figures ....................................................................................... 73

Habib Metro Bank


©2013 MoneyGram v
Proprietary and confidential
Introduction 13.05

The following diagram explains the formats used in process flows throughout this document.

Figure 1: Explanation of Process Flow Diagrams

Habib Metro Bank


vi ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05

The following is an example of a table used to describe API request field details.

Tag Datatype Information and Rules Input Data

requestExampleField1 string An example of a field containing a string.


Maximum length: 10

requestExampleField2 string An example of a field containing a country code


Length: 3
Must be a valid country
code

requestExampleField3 boolean An example field whose input and data requirements


depend on the getFieldsForProduct API.
Additional Information
1. If true, then...
2. If false, then...

Definitions
• Tag: The field's XML tag; fields for which data is required are shown in bold red text
• Datatype: Describes the type and restrictions of the field's data
• Information and Rules: Provides additional information, business rules, and a description of the field if necessary
• Input: Indicates how the field's value is obtained
□ Application: The agent application must not visibility the field on its user interface for user input, and the value must be retrieved
from another part of the agent application (e.g., a previous API response) or the agent's system
□ GUI: The agent application must visibility the field on its user interface and allow user input
□ Conditional: The agent application may or may not visibility the field on the user interface for user input depending on the
conditions stated in the Information and Rules column
□ GFFP or GFFR: Whether or not the field is shown on the user interface for user inputs depends on the information returned by the
getFieldsForProductResponse (GFFP) or getFieldsForRewardsResponse (GFFR)
□ N/A: Input does not apply; for instance, if the field only contains other fields
□ Not Allowed: The agent application must not allow data to be entered in the field Habib Metro Bank
©2013 MoneyGram vii
Proprietary and confidential
Introduction 13.05

□ Optional: The agent may choose whether to visibility the field on the user interface for user input
• Data: Indicates whether the field must contain data; only used on API requests
□ Required: The field must contain data
□ Not allowed: The field must not contain data
□ Optional: The agent may choose whether to show the field on the user interface
□ Conditional: The field may or may not contain data depending on the conditions stated in the Information and Rules column
□ GFFP or GFFR: Whether or not the field contains data depends on the information returned by the getFieldsForProductResponse
(GFFP) or getFieldsForRewardsResponse (GFFR)
□ Response: Whether or not the field contains data depends on the information returned by a message specified in the additional
information for the API

The following is an example of a table used to describe API response field details.

Tag Datatype Information and Rules Display

responseExampleField1 string An example of a field containing a string. required


Maximum length: 10

responseExampleField2 string An example of a field containing a country code optional


Length: 3
Must be a valid country code

responseExampleField3 boolean An example field whose data and display requirements required
depend on the getFieldsForProduct API.
Additional Information
1. If true, then...
2. If false, then...

Definitions
• Tag: The field's XML tag; fields for which data is required are shown in bold red text
• Datatype: Describes the type and restrictions of the field's data
Habib Metro Bank
viii ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05

• Information and Rules: Provides additional information, business rules, and a description of the field if necessary
• Display: Indicates whether the value of the field is shown on the agent application's user interface
□ Conditional: The value may or may not be shown on the user interface depending on the conditions stated in the Information and
Rules column
□ GFFP or GFFR: Whether or not the value is shown on the user interface depends on the information returned by the
getFieldsForProductResponse (GFFP) or getFieldsForRewardsResponse (GFFR)
□ N/A: Display does not apply; for instance, if the field doesn't contain displayable data
□ Not allowed: The value must not be shown on the user interface; for fields in API responses, the data in the field should not be
edited unless otherwise stated
□ Optional: The agent may choose whether to show the value on the user interface
□ Required: The value must be shown on the user interface

Habib Metro Bank


©2013 MoneyGram ix
Proprietary and confidential
Habib Metro Bank
Introduction 13.05 Introduction

Introduction
This document provides an introduction to MoneyGram's AgentConnect® product, including
descriptions of the technologies used, the product development cycle, and installing the
AgentConnect simulator.
AgentConnect® provides APIs (application programming interfaces) to integrate MoneyGram money
transfer products into your own POS (point-of-sale). There are four parts to the AgentConnect
product:
1. A complete SDK (software development kit), including the detailed technical specification of the
APIs and a simulator that allows developers, business analysts, and functional experts to see
and to test messages
2. MoneyGram consulting and advisory services to facilitate the design, development, and testing
processes
3. MoneyGram project management assistance
4. MoneyGram quality assurance certification event
In order to successfully develop a quality application, agents must have the following:
1. Familiarity with XML (Extensible Markup Language)
2. In-house or third-party systems development
3. Testing capabilities
4. A commitment to partner with MoneyGram to ensure mutual success
There are several benefits to using AgentConnect to perform wire transfer service with
MoneyGram, including the following:
1. Hardware and software independence: Applications can be developed using any language
and hardware platform as long as it can send and receive the appropriate MoneyGram Web
server XML messages. This provides the ability to add MoneyGram wire transfer applications to
existing POS or ATM systems.
2. Integral transaction security: Transaction security that is built into AgentConnect. All
messages between agents and the MoneyGram Web server use HTTPS, so every message is
encrypted. As an additional security measure, MoneyGram configures agents to use unique
profiles, and either a password or token. By authenticating every transaction, regardless of the
method of security chosen, MoneyGram ensures that two applications (the real agent's and an
imposter's) cannot run using the same profile.
3. Design flexibility: Agents can create a user interface that is user friendly and appeals to
consumers and employees. MoneyGram transactions can be integrated into existing
applications, or agents can create specialized MoneyGram transaction applications. Agents
control the "look and feel" of their wire transfer products.
4. Assistance from MoneyGram: MoneyGram has documented the AgentConnect commands
(including standard messages, business rules, error messages and development tips).
MoneyGram has also established a development environment available to outside developers
for testing applications. In additional, AgentConnect includes a simulator that developers can
use to see the correct format of outgoing and incoming messages, and send messages they
create on their own.
Aside from offering tools for development, a dedicated MoneyGram team is ready to help. The
team offers design advice, project management, and a certification event to ensure that agents can
successfully process MoneyGram transactions.

Habib Metro Bank


©2013-05 MoneyGram 1
Proprietary and confidential
Request Message Header Fields Introduction 13.05

Technologies
XML Schema and WSDL

Schema
AgentConnect uses XML messaging between the agent application and MoneyGram. Messages are
described in an XML schema document which describes a set of elements, rules, and other
information required to create valid AgentConnect messages. The XML schema document is written
XML Schema, a W3C recommendation.
The following is an example of an element described by XML Schema.
<xs:element name="exampleParentElement" type="ac:ExampleParentElement"/>
<xs:complexType name="ac:ExampleParentElement">
<xs:complexContent>
<xs:extension base="ac:exampleElementBase">
<xs:sequence>
<xs:element name="exampleChildElement1" type="xs:string"/>
<xs:element name="exampleChildElement2" type="xs:string"/>
<xs:element name="exampleChildElement3" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

The first line of code defines an XML element with the name exampleParentElement.
The second and third lines define the type of content contained element. In this case the element
contains complex content; that is, it contains other elements.
The fourth line indicates the element extends another element; it contains the elements of
exampleElementBase and adds further elements of its own.
The fifth line indicates that the element's child elements must occur in an XML document in the
order they are shown in the schema.
The sixth, seventh, and eighth lines define the element's child elements. In this example, the
elements' values are strings.
More information on XML Schema can be found online at the W3C's Web site, www.w3c.org.

WSDL
In addition to XML Schema, AgentConnect uses WSDL (Web Services Description Language), an
XML language used to describe Web services. WSDL describes Web services as a set of endpoints
operating on messages containing either document-oriented or procedure-oriented information.
MoneyGram supports SOAP version 1.2, WSDL version 1.1, and is compatible with WS-I Basic
Profile 1.0. The message format conforms to literal schema instances, and the Web service uses
document/literal as a binding style.
A complete description of WSDL can be found online at the W3C's Web site, www.w3c.org.

Habib Metro Bank


2 ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05 Request Message Header Fields

AgentConnect XML Schema


The XML Schema definition of an AgentConnect message appears as follows:
<xs:element name="exampleMessage" type="ac:ExampleMessage"/>
<xs:complexType name="ac:ExampleMessage">
<xs:complexContent>
<xs:extension base="ac:exampleMessageBase">
<xs:sequence>
<xs:element name="exampleMessageBodyField1" type="xs:string"/>
<xs:element name="exampleMessageBodyField2" type="xs:string"/>
<xs:element name="exampleMessageBodyField3" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

The schema defines the AgentConnect message as an element containing other elements. The child
elements are of two types: header elements and body elements. The header elements are included
in the message definition by extending the exampleMessageBase element. The body elements are
defined explicitly.
If the header elements were defined explicitly, the entire message definition would appear as
below:
<xs:element name="exampleMessage" type="ac:ExampleMessage"/>
<xs:complexType name="ac:ExampleMessage">
<xs:complexContent>
<xs:sequence>
<xs:element name="exampleMessageHeaderField1" type="xs:string"/>
<xs:element name="exampleMessageHeaderField2" type="xs:string"/>
<xs:element name="exampleMessageHeaderField3" type="xs:string"/>
<xs:element name="exampleMessageHeaderField4" type="xs:string"/>
<xs:element name="exampleMessageBodyField1" type="xs:string"/>
<xs:element name="exampleMessageBodyField2" type="xs:string"/>
<xs:element name="exampleMessageBodyField3" type="xs:string"/>
</xs:sequence>
</xs:complexContent>
</xs:complexType>

More information on the types of extensions used in AgentConnect messages is found in Message
Headers.

AgentConnect Messages
An Agent application must have the capability to capture all request and
response xml messages with MoneyGram.
Communication between the agent application and MoneyGram consists of a request message sent
from the agent application to MoneyGram, followed by a response message from MoneyGram to
the agent application. All messages to and from AgentConnect use HTTPS, which is HTTP
(Hypertext Transfer Protocol) combined with SSL (Secure Socket Layer). The agent application
opens a network connection to MoneyGram and sends HTTP headers according to the HTTP
protocol and a SOAP data stream for the AgentConnect API on Port 443.

Habib Metro Bank


©2013 MoneyGram 3
Proprietary and confidential
Request Message Header Fields Introduction 13.05

Format
An AgentConnect message consists of a set of standard headers combined with an element defined
by the AgentConnect XML schema.
1. HTTP header
2. XML declaration
3. SOAP envelope
4. Message name
5. AgentConnect message header fields
6. AgentConnect message body fields
A complete AgentConnect message appears as in the example below.
POST http://example.com/servicesLocation HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client
Protocol 4.0.30319.225)
VsDebuggerCausalityData:
uIDPo1WZA/LuXitCvkmnX3Hc9b0AAAAA4uIDs8IVgUe3j6BgwkHnzPT5YTeFuklPrhZDCTTFXlIAC
QAA
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:example#exampleMessageName"
Host: example.com
Content-Length: 000
Expect: 100-continue
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<exampleMessageName xmlns="http://example.com/schemaLocation">
<exampleMessageHeaderField1>Header Field 1
Value</exampleMessageHeaderField1>
<exampleMessageHeaderField2>Header Field 2
Value</exampleMessageHeaderField2>
<exampleMessageHeaderField3>Header Field 3
Value</exampleMessageHeaderField3>
<exampleMessageBodyField1>Header Field 1 Value</exampleMessageBodyField1>
<exampleMessageBodyField2>Header Field 2 Value</exampleMessageBodyField2>
<exampleMessageBodyField3>Header Field 3 Value</exampleMessageBodyField3>
</exampleMessageName>
</soap:Body>
<soap:Envelope>

SOAP
MoneyGram implements SOAP version 1.2 using Apache SOAP version 1.1.
It may be easier for the developer to use SOAP to generate messages to send to the Host.
However, SOAP is not required to use the AgentConnect API, and it is not documented here.

Habib Metro Bank


4 ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05 Request Message Header Fields

Message Headers
AgentConnect request and response messages use the following common header fields:

Tag Datatype Information and Rules Display

unitProfileID int Internal Use Only. Not allowed

agentID string The agent's unique identification number. Each location will Not allowed
have a unique number assigned by MoneyGram.
Length: 8

agentSequence string The unique POS number that identifies an individual POS at Not allowed
the agent location. Other locations may have POS devices
Maximum length: 2
with the same number. The number is provided by
MoneyGram and should not be hard-coded by the agent.

token string The agent's password. Not allowed


Maximum length: 20

language string The language in which errors and other language-specific


information is returned.
Valid values: de, en, es, fr
Additional Information
Default value: en
1. de is German
2. en is English
3. es is Spanish
4. fr is French

timeStamp dateTime The date and time the request was sent.
Format: CCYY-MM-
DDThh:mm:ss.sss-hh:mm

apiVersion string The API version the agent application uses.


Valid values: 1305
Habib Metro Bank
©2013-05 MoneyGram 5
Proprietary and confidential
Request Message Header Fields Introduction 13.05

Tag Datatype Information and Rules Display

clientSoftwareVersion string The version of the agent application being used. This value is
set by the agent and can be used for debugging purposes.
Maximum length: 6
MoneyGram stores this information in its systems, but does
not check or return the value. It is used when an agent
places a technical call to verify problems between different
versions.

userID string Internal Use Only.


Maximum length: 20

Habib Metro Bank


6 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 Response Message Header Fields

Tag Datatype Information and Rules Display

doCheckIn boolean Additional Information Not allowed


1. Field is not currently used.

timeStamp dateTime The time the request was sent.


Format: CCYY-MM-
DDThh:mm:ss.sss-hh:mm

flags int These bit set values added together can produce
combinations of information that should be downloaded. For
example, a 3 returned indicates that the agent application
should retrieve a new code table and profile information.
Since this is a bit set, applications need not consider flags
that are not relevant to it. For example, if the application
receives an 11 (1 + 2 + 8 = 11), it only has to consider the 1
and 2, and the 8 can be ignored. If the application receives a
6 (2 + 4 = 6), it only has to consider the 2, and the 4 can be
ignored because it is deprecated.
Additional Information
1. 1 is new code table information is available
2. 2 is new profile information is available
3. 4 is not used
4. 8 is not used
5. 16 new translation information is available

Habib Metro Bank


©2013-05 MoneyGram 7
Proprietary and confidential
Error Message Introduction 13.05

Error Messages
SOAP faults are returned whenever the Host cannot properly process a request. They normally include the source of the problem (server or
agent), the short name of the problem, an error code, a detailed description of the problem, and other information.

Tag Datatype Information and Rules Display

faultCode string Indicates where the problem originated. This can be client,
server, or SOAP version mismatch.

faultString string A short description of the error that occurred.

detail complex Returned when the fault was generated by the AgentConnect
server.

error complex None


Maximum number of
occurrences: 1

errorCode string The error code specific to the problem that occurred.

errorString string A short description of the error that occurred.


maximum length: 500

subErrorCode string The particular sub error code, if any, for the fault code
specified above.

offendingField string The request field that caused the error. This field appears
only where valid.

timeStamp dateTime The time the message was sent.


Format: CCYY-MM-
DDThh:mm:ss.sss-hh:mm

detailString string More detailed information on what may have caused the
error.
maximum length: 500
Habib Metro Bank
8 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 Technologies

The agent application must display the following on screen:


• errorCode
• errorString
• subErrorCode
• detailString

Figure 2: Example Error Dialog

Habib Metro Bank


©2013-05 MoneyGram 9
Proprietary and confidential
Technologies Introduction 13.05

International Character Support


MoneyGram supports the following international characters. These accented characters are
converted to non-accented characters in MoneyGram's systems.

From To

À, Á, Â, Ã, Ä, Å A

È, É, Ê, Ë E

Ì, Í, Î, Ï, İ I

Ò, Ó, Ô, Õ, Ö, Ø O

Ù, Ú, Û, Ü U

Ý, Ÿ Y

Ñ N

Ç C

Ğ G

Ş S

à, á, â, ã, ä, å a

è, é, ê, ë e

ì, í, î, ï, ı i

ò, ó, ô, õ, ö, ø o

ù, ú, û, ü u

ý, ÿ y

ñ n

ç c

ğ g

ş s

Table 1: Character Mapping

Habib Metro Bank


10 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 Pilot and Support Plans

High Network Availability


MoneyGram provides high network availability to Agents. MoneyGram currently has redundant
datacenters, each with separate OLTP (online transaction processing environments) including
redundant firewalls, load-balancers, web servers, and websphere application servers. Processing
transactions at both datacenters significantly increases availability of MoneyGram services.

High Availability with Internet


The agent may or may not have redundant servers and uses Internet DNS to resolve
xxx.moneygram.com. The agent does not translate MoneyGram IP addresses to other IP
addresses.
The agent is connects to the MoneyGram OLTP environment via the Internet and uses public DNS
servers for resolution. The agent ensures that its transaction servers honor the DNS TTL provided
by its ISP. If it does not, an application restart may need to occur in the event of a datacenter
failover situation. MoneyGram monitors the URL xxx.moneygram.com in each MoneyGram
datacenter and makes dynamic changes to the Internet DNS as a result of a failure. When
resolving xxx.moneygram.com, the agent receives either the IP address 63.91.129.XXX or
207.67.74.XXX.
AgentConnect High Availability Diagram

The standard means of connectivity to


MoneyGram AgentConnect is by
utilizing the Internet. The agent’s
application server will use the https
protocol to encrypt traffic and DNS `
to control fail-over between
MoneyGram data centers. Customer POS

It is recommended that the agent performs


https posts to the MoneyGram OLTP
environment utilizing at least two
application servers. The servers
will use global DNS load-balancing to
connect to the available MoneyGram data MoneyGram Agent Application Server MoneyGram Agent Application Server
centers. In this example, the agent is using Internet DNS resolves ws.moneygram.com Internet DNS resolves ws.moneygram.com
the URL ws.moneygram.com. The agent’s to available Datacenter to available Datacenter
application server will execute a DNS
lookup to obtain the IP address of one
of our data centers. The application
server will be configured to honor the
DNS time-to-live of 30 seconds. MoneyGram Intelligent DNS
In the event of a failure, the application
server will receive the IP address
of the alternate data center when it
refreshes the its DNS lookup. MoneyGram OLTP Primary Datacenter MoneyGram OLTP Secondary Datacenter
ws.moneygram.com ws.moneygram.com
IP address: xx.xx.xxx.xxx IP address: xxx.xx.xx.xxx

Figure 3: AgentConnect High Availability Diagram

Habib Metro Bank


©2013-05 MoneyGram 11
Proprietary and confidential
Pilot and Support Plans Introduction 13.05

Product Development Cycle

Figure 4: Product Development Cycle

The product development life cycle consists of the following steps:


1. Preliminary investigation
2. Detailed investigation
3. Development
4. Quality assurance
5. Full production and market launch
The agent's responsibilities during the five stages are described in the following sections.
Understanding who performs which responsibilities, and what tasks occur in the sequence helps
create better expectations for product completion.

Preliminary Investigation
1. Agent and MoneyGram assess market
2. MoneyGram provides presentations and background information
3. MoneyGram assists agent in determining products
4. MoneyGram assists in determining fit of AgentConnect in agent's business
5. High level telecommunication and infrastructure communications take place

Habib Metro Bank


12 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 Pilot and Support Plans

Detailed Investigation
1. Agent signs AgentConnect NDA and Agreement
2. MoneyGram provides agent with AgentConnect SDK materials
3. MoneyGram begins project management support
4. MoneyGram assists with preliminary design consultation
5. MoneyGram explains integration with MoneyGram systems
6. Agent creates specification, high level design, and project plan
7. AgentConnect team understands all contractual obligations
8. MoneyGram network group begins installation of production circuit
9. MoneyGram sends Agent Requirements form
10. Proposed APIs agreed upon

Development
1. Agent designs application
2. Agent creates and performs unit and integration testing of application
3. Agent creates pilot and rollout plans
4. Agent tests application in MoneyGram external region using test IDs provided by MoneyGram
5. MoneyGram provides pre-certification and certification test plans
6. MoneyGram sets up production circuits
7. Agent provides information about agent locations
8. MoneyGram creates or verifies agent profiles
9. MoneyGram gathers information for support plan
10. MoneyGram provides technical support and has regular calls with agent to discuss the APIs,
business rules, questions, and other issues agent may encounter

Quality Assurance
1. Agent performs pre-certification with MoneyGram assistance
a. MoneyGram provides test cases. Agent executes test cases and provide xml results and screen
shots. MoneyGram validate results.
2. MoneyGram approves receipts
3. Agent performs certification event with MoneyGram assistance. Same process as pre-
certification in 1a.
4. Agent creates training and system documentation with MoneyGram assistance
5. Agent trains employees

Full Production and Market Launch


1. Agent performs pilot test
2. MoneyGram supports pilot testing
3. Agent and MoneyGram finalize ongoing support plan
4. MoneyGram assists agent with market launch
5. Agent rolls out MoneyGram products

Habib Metro Bank


©2013-05 MoneyGram 13
Proprietary and confidential
Pilot and Support Plans Introduction 13.05

Some sample test cases sent to Agent during pre-certification are given below. There would be
similar test cases for other APIs and process flows the Agent would be developing.
MoneyGram Successful Send/Receive Test Cases
Amount
Test (in Agent
Reference
Case From To Instructions sending Commen
Number
Name agent's ts
currency)
SN08 USA USA Perform a send transaction providing data in ALL 567.89
fields using the following information on the initial
send:
- Receiver's First name: Pharringalbertastien
- Receiver's Last name:
Coomaraswamanushtanu
- Receiver's Second Last name:
ELcbertastienpherringcoladaren
Please provide us the screen shot of complete
flow and also provide screen shot of the receipt.
RC07 SPAIN UK Perform a receive transaction providing data in 1500.00 78945621
only REQUIRED fields.
MoneyGram Unsuccessful Send/ Receive Test Cases
REMINDER: As with other negative test cases,
please execute each of the following as far as you
are able, using your un-altered client application.
Following the attempt, provide all XML generated
for the transaction (as with other cases); also,
include the reason for your stopping point in the
"comments" column to the right.
SN40 USA MEXICO Perform a send providing data in only REQUIRED 342.90
fields in your application.
1. Use one of the following for the sender's
country:
United States
Mexico
Canada
2. DO NOT enter a value for the sender's State.
A. Please return all XML generated.
B. If not possible to execute the transaction or an
error occurs, please return a comment describing
your application's response.
C. Return a screen shot showing how your
application prevents this transaction from being
completed, including any error messages that are
displayed on your application's UI.
RC21 USA CHINA Perform a Reference Number Lookup using the N/A 11122236
reference number given.
A. Please return all XML generated.
B. If not possible to execute the transaction or an
error occurs, please return a comment describing
your application's response.
C. Return a screen shot showing how your
application prevents this transaction from being
completed, including any error messages that are
displayed on your application's UI.
Expected: The reference number is invalid and
should return an error in the referenceNumber
response.
Habib Metro Bank
14 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 Pilot and Support Plans

Submitting Problems to MoneyGram During Development


Information that MoneyGram needs in order to help developers solve issues is shown below.
MoneyGram requires Agent developers to provide XML code with request and response information.
The XML code is used during application certification stages and is also used if production issues
arise in the future.
If issues are discovered during the development process, please submit the information that is
requested below along with the issue to ensure a timely response. The information should be
submitted to all appropriate technical and business people.
After completion of development, there are different procedures to follow when the application is in
production. These procedures are found in the support plan developed with MoneyGram.
• The date the issue occurred
• The name of the person who can be contacted with any questions on the issues and may be
able to help in the resolution of the issue
• A brief descriptive title of the issue
• A thorough description of the issue
• Whether or not the issue is repeatable
• The steps taken to cause the issue
• The results of attempting to cause the issue using the AgentConnect Simulator

Habib Metro Bank


©2013-05 MoneyGram 15
Proprietary and confidential
Pilot and Support Plans Introduction 13.05

Pilot and Support Plans


Pilot Plan
The pilot plan provides an opportunity to perform a controlled release of AgentConnect to the
production environment. It verifies successful interaction of AgentConnect messaging between the
agent application and the MoneyGram system.
During the pilot phase, the agent application should be rolled out to a minimum of five locations.
MoneyGram's preference is for an agent to have no more than ten locations to minimize production
impacts if problems arise. The MoneyGram project team supports the agent during the entire pilot
process and supports any issues that may arise during the pilot phase.

Support Plan
The purpose of the support plan is to provide a service guide to the agent and MoneyGram when
the agent moves to full production following its pilot. The support plan is created by the agent and
MoneyGram.

Habib Metro Bank


16 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 Installing the AgentConnect Simulator

Installing the AgentConnect Simulator


The AgentConnect simulator is an application that creates and sends requests to MoneyGram and
displays the responses it receives. For transactions that require more than one message, the
simulator repeats this process for each subsequent step. The AgentConnect simulator can also be
used to transmit AgentConnect messages that have been created externally (e.g., by hand,
application or other method).
The simulator logs every message it sends or receives so that the syntax, structure, and fields can
be reviewed at a later time.
Follow the following steps to install the AgentConnect simulator:
1. Execute setup.exe.
2. The InstallShield program will guide you through the installation process. The following
directories and files are installed:
• Lib: Contains the Java jar files needed for the simulator to run
• Etc: Contains properties and settings files, including the
AgentConnectSimulatorSettings.xml file
• Source: Contains a .zip file of the Java source code for the simulator, as well at the
SampleSaveRegistration.xml file that contains receiver registration sample code
• j2re1.4.2_04: Contains the 1.4.2_04 version of the Sun Java Runtime Environment
• AgentConnectSimulator.bat: The .bat file that sets up the Java classpath and runs the
simulator
3. Three new files are created the first time the simulator is run:
• AgentConnectSimulatorSettings.xml: Contains URL, WSDL location, Agent ID, and
header information so the agent doesn't need to load this information every time the
Simulator is started
• AgentConnectSimulator.log: Logs all request and response messages in XML
• SampleSaveRegistration.xml: Provides a sample of keyed value pairs for receiver
registration

Habib Metro Bank


©2013-05 MoneyGram 17
Proprietary and confidential
Installing the AgentConnect Simulator Introduction 13.05

Sample Test ID letter and Instruction to use the


Simulator:

The AgentConnect simulator is a Java application designed for and tested on Windows NT and 2000 as a
development tool to assist you as you program your MoneyGram money transfer application. Please reference to
SDK Overview module for complete details on installing and using the simulator.

Getting Started:
1. Install the simulator by running setup.exe.
The AgentConnect Simulator also allows agents to connect to MoneyGram using a proxy server. To
connect to a proxy, open the simulator and click <Security> on the menu bar, then select <Proxy
Settings> to input and save your settings. Be sure to check the Use Proxy checkbox.
2. Make sure it is possible to connect to the endpoint URL.
This is used to send requests to the AgentConnect server from the simulator and the Agent’s
application. https://extws.moneygram.com/extws/services/AgentConnect1305
This can be run in a browser to verify connections with the AgentConnect server.
3. Point the simulator at the WSDL file.
The WSDL is used by the simulator to assist in formatting XML
https://extws.moneygram.com/extws/AgentConnectWSDL?Version=1305
4. Run sample transactions using your test agent IDs.
Listed below are few samples of MoneyGram Agent identification numbers and their associated POS
numbers and passwords for you to use during testing. Use one of these for “send” transactions and the
other for “receive” transactions. It does not matter which ID is used for the “send” or the “receive” as
long as “send” and “receive” are not used from the same ID on one transaction. MoneyGram has a
business rule that prevents the same Agent from sending and receiving the same transaction.

Test ID 1
Agent ID: xxxxxxxx
POS Number: xx
Password: TEST
Test ID 2
Agent ID: xxxxxxxx
POS Number: xx
Password: TEST

If your test IDs become deauthorized during application development, you can reauthorized them as
follows:
The re-authorization URL works by running it from a browser command line. Re-authorize a de-
authorized development POS ID at
https://extws2.moneygram.com/extwsweb/servlet/ReauthServlet
Please note that this method of re-authorization is only allowed in the test environment. Once an Agent
begins running production transactions, the Agent must call MoneyGram’s Help Desk to re-authorize a
POS device. Contact information for re-authorization will be distributed to the Agent prior to production
rollout.

Habib Metro Bank


18 ©2013 MoneyGram
Proprietary and confidential
Introduction 13.05 Installing the AgentConnect Simulator

Additional information on Proxy configuration:

If Proxy configuration is needed to allow the AgentConnect Simulator to access the internet, the following Proxy
Settings Information must be configured:

Security>Proxy Settings

Figure 5: Proxy Configuration Screen

Habib Metro Bank


©2013-05 MoneyGram 19
Proprietary and confidential
Habib Metro Bank
Introduction 13.05 PCI Compliance

PCI Compliance
MoneyGram recognizes and values the importance of enacting information security best practices
throughout our organization. In order to provide our agents with a secure network for
communicating and doing business with us, we recommend that business partners and agents who
connect directly to our network follow the Payment Card Industry (PCI) security standards. These
security standards have been adopted as security best practices among the financial and payment
services industries.
More information may be found at the VISA CISP website:
http://usa.visa.com/business/accepting_visa/ops_risk_management/cisp_merchants.html?it=c|/bu
siness/accepting_visa/ops_risk_management/cisp%2Ehtml|Merchants

Habib Metro Bank


©2013-05 MoneyGram 21
Proprietary and confidential
Habib Metro Bank
Introduction 13.05 Initialization and Maintenence

Initialization and Maintenence


Business Purpose
1. This section provides technical and business information required to initialize a POS and keep
an agent application up to date with critical system information.
2. The agent must store two types of system information for use in APIs.
a. Profile information: Contains agent application system settings such as available
products, financial limits, security settings, and network settings
b. Code table information: Contains MoneyGram system information such as country,
state/province, and currency codes used by MoneyGram, available transaction delivery
options, and rewards program information.

API Flows and Processes


POS Initialization Process
1. Choose one of the following.
a. If MoneyGram controls hours of operation the agent application sends an
initialSetupRequest containing time zone information and the password provided by
MoneyGram, and MoneyGram returns an initialSetupResponse confirming initialization.
b. The agent application sends a non-financial transaction API containing the password
provided by MoneyGram in the message header, and MoneyGram returns the corresponding
response. MoneyGram recommends using either the codeTableRequest or
countryInfoRequest API.

Maintenance Process
1. Choose one of the following.
a. The agent application sends a codeTableRequest, and MoneyGram returns a
codeTableResponse containing country, currency, delivery option, and other information
that must be used by the application.
b. Information that must be used by the application is obtained by using a combination of the
following:
□ The agent application sends a countryInfoRequest, and MoneyGram returns a
countryInfoResponse containing country information.
□ The agent application sends a stateProvinceInfoRequest, and MoneyGram returns a
stateProvinceResponse containing state and province information for Canada, Mexico,
and the United States.
□ The agent application sends a currencyInfoRequest, and MoneyGram returns a
currencyInfoResponse containing currency information.
2. [Optional] The agent application sends a translationsRequest containing a language code,
and MoneyGram returns a translationsResponse containing some code table information
translated into the requested language.
3. The agent application stores the returned information.

Habib Metro Bank


©2013-05 MoneyGram 23
Proprietary and confidential
Initialization and Maintenence Introduction 13.05

POS Profile Process


1. The agent application sends a profileRequest with message header information for the POS
for which to get information, and MoneyGram returns a profileResponse containing POS
profile information.
2. The agent application stores the returned information.

Habib Metro Bank


24 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > profile

APIs
Required APIs
1. profile
2. codeTable

Conditional APIs
3. countryInfo
4. currencyInfo
5. stateProvinceInfo
6. translations
7. doddFrankStateRegulatorInfo
8. variableReceiptInfo
9. industry

Habib Metro Bank


©2013-05 MoneyGram 25
Proprietary and confidential
APIs > profile Introduction 13.05

1. profile

The agent application uses the profile API obtain information used to comply with business rules
when performing transactions.

Additional Information
1. Agents must store information returned in the profileResponse
2. The agent must create an automated process to obtain updates during non-business hours; the
agent must also create a manual process to obtain updates in the event profile changes occur
during business hours
3. The agent profile only needs to be updated by one location using the model agent ID; the
information may be shared among locations

profileRequest

Field Summary

• (None)

Habib Metro Bank


26 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > profile > request

Field Detail

Tag Datatype Information and Rules Input Data

(None) N/A None N/A

Habib Metro Bank


©2013-05 MoneyGram 27
Proprietary and confidential
APIs > profile > response Introduction 13.05

profileResponse

Field Summary
• profileItem
□ index
□ key
□ value
• productProfileItem
□ index
□ key
□ value
□ productID

Additional details about the some of the important profile and product profile items:

1. key: AGENT_TIME_ZONE: Agent’s Time zone information as setup in MGI system (example value: GMT+1:00)
2. key: AGENT_TIME_ZONE_NAME (example value: Europe/Paris)
3. key: AGENT_DST (values: Y or N). Y indicates Daylight saving applied)
4. key: AGENT_HOURS (example value: 09:30:00,18:30:00 represents opening and closing hours respectively.
Index: 0 to 7 represents Sun to Sat)
5. key: ACTIVATE_REWARDS_CARD_OPTION (example value: N): indicates whether the Rewards enrollment is
possible by this Agent ID.
6. key: PROMOTIONAL_CODE_LIMIT (value: 0, 1 or 2): indicates the maximum number of promotional codes allowed
to be used during a Send transaction.
7. key: AGENT_NAME (Agent’s DBA name)
8. key: AGENT_ADDRESS_1, AGENT_ADDRESS_2, AGENT_ADDRESS_3, AGENT_CITY, AGENT_STATE, AGENT_ZIP :
returns the detailed address information as in MGI system.
9. key: AGENT_CURRENCY - Send currency information, if the Agent is multicurrency Send, this will be returned
multiple times. The index indicates the currency code, and the value indicates the 3-letter currency code.
10. key: ALLOW_LANG_OPT (valid values: eng, spa, fra, deu, zho) : indicates receipt languages for primary and
secondary receipts.
11. key: ALLOW_NO_SECONDARY_LANG, (valid value: N or Y): if N indicates no need have the receipt in a secondary
language
12. key: HDV_LIMIT , the high dollar verification limit. Currently not applicable to AgentConnect.
13. key: RECEIVE_CURRENCY: values could be 3-letter currency codes. if the Agent is multicurrency Receive active,
this could be returned multiple times
14. key: USE_OLD_NAME_SIZES (value: Y or N)
15. key: DOCUMENT_NAME (example value: MONEYGRAM SEND, productID: 5): indicates ID and name for a particular
product
16. key: FRAUD_LIMIT_LEGAL_ID – indicates the
17. legal Id verification threshold for the particular product and currency.
18. key: FRAUD_LIMIT_THIRD_PARTY_ID – indicates the third party ID verification threshold for the particular product
and currency.
19. key: FRAUD_LIMIT_PHOTO_ID – indicates the photo Id verification threshold for Send and particular currency.
20. key: FRAUD_LIMIT_TEST_QUESTION – indicates the test question and answer threshold for Send and particular
currency.
21. key: ALLOW_DEL_OPT: indicates whether transaction in a particular delivery option may be attempted. If value:N
for the particular delivery option ID that would mean it is not allowed.
22. key: FRAUD_LIMIT_CASH_WARNING – not applicable to AgentConnect
23. key: MAX_AMOUNT_PER_ITEM – indicates the maximum amount per transaction for particular product and
currency.
24. key: FRAUD_LIMIT_ADDRESS - indicates the receiver address verification limit for Receive and particular currency
25. key: DEFAULT_CASH_PAYOUT_AMOUNT – not applicable to AgentConnect
26. key: FRAUD_LIMIT_RECEIVER - indicates the photo Id verification threshold for Receives and particular currency
27. key: PRODUCT_STATUS (example value: A) – indicates whether a particular product is available. For example, if
value is A for product ID: 6 it would mean that this Agent ID is authorized to perform Receive transactions.

Habib Metro Bank


28 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > profile > response

Field Detail

Tag Datatype Information and Rules Display

profileItem complex None N/A


Maximum number of
occurrences: unbounded

index int The order of the profile item. N/A


Additional Information
1. Value is 0 unless multiple profile items use the same
value for the key field; for example, store hours are
indexed 1-7 for days of the week

key string The name of the profile item. N/A


Maximum length: 40

value string The value of the profile item N/A


Maximum length: 400

productProfileItem complex None N/A


Maximum number of
occurrences: unbounded

index int The order of the product profile item. N/A


Additional Information
1. Value is 0 unless multiple profile items use the same
value for the key field; for example, store hours are
indexed 1-7 for days of the week
2. For multi-currency send or receive transaction, the value
refers to the specific currency; for example index of
840=USD

Habib Metro Bank


©2013-05 MoneyGram 29
Proprietary and confidential
APIs > profile > response Introduction 13.05

Tag Datatype Information and Rules Display

key string The name of the product profile item. N/A


Maximum length: 40

value string The value of the product profile item N/A


Maximum length: 400

productID int The numeric ID of the product profile item N/A


Additional Information
1. 5 is MoneyGram Send
2. 6 is MoneyGram Receive
3. 7 is Bill Payment
4. 9 is FormFree Send Submittal
5. 10 is FormFree Bill Payment Submittal
6. 11 is FormFree Receive Submittal
7. 12 is Receiver Registration

Habib Metro Bank


30 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > codeTable

2. codeTable

The agent application uses the codeTable API to obtain countries, states, currencies, delivery
options, and other important information required to perform transactions.

Additional Information
1. Agents must store the information returned in the codeTableResponse locally
2. The agent must create an automated process to obtain updates during non-business hours; the
agent must also create a manual process to obtain updates in the event system changes occur
during business hours
3. The code table information only needs to be updated by one location using the model agent ID;
the information may be shared among locations
4. This process should be performed on a regular basis. MoneyGram recommends a daily batch
process during non-business hours.
5. In the codeTableResponse, the agent can keep track of MoneyGram’s ‘version’ in the agent’s
local table and the agent will need to perform the API call daily, but may choose to update the
information only if the version changes,
6. Code Table must be carefully analyzed as information returned is critical for successful
transaction processing

codeTableRequest

Field Summary

• agentAllowedOnly

Habib Metro Bank


©2013-05 MoneyGram 31
Proprietary and confidential
APIs > codeTable > request Introduction 13.05

Field Detail

Tag Datatype Information and Rules Input Data

agentAllowedOnly boolean Additional Information application optional


Default value: false 1. If true, the codeTableResponse returns only
delivery options available to the agent
2. If false, the codeTableResponse returns all
delivery options regardless of whether they are
available to the agent
MoneyGram recommends to set the agentAllowedOnly
flag to true if delivery options are obtained from
code tables. Flag can be set to false if delivery
options are obtained from feeLookUpResponse

Habib Metro Bank


32 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > codeTable > response

codeTableResponse

Field Summary

• version □ deliveryOption
• stateProvinceInfo □ deliveryOptionName
□ countryCode • rewardsInfo
□ stateProvinceCode □ programType
□ stateProvinceName □ name
• countryInfo □ description
□ countryCode • rewardsCardTypeInfo
□ countryName □ cardType
□ countryLegacyCode □ description
□ sendActive • rewardsRegistrationInfo
□ receiveActive □ country
□ directedSendCountry □ programType
□ mgDirectedSendCountry □ cardType
□ baseReceiveCurrency □ allowPrePrintedCards
• currencyInfo □ allowStandardCards
□ currencyCode
□ currencyName
□ currencyPrecision
• countryCurrencyInfo
□ countryCode
□ baseCurrency
□ localCurrency
□ receiveCurrency
□ indicativeRateAvailable
□ deliveryOption
□ receiveAgentID
□ receiveAgentAbbreviation
□ mgManaged
□ agentManaged
□ validationExprs
□ checkDigitAlg
• deliveryOptionInfo
□ dssOption
□ deliveryOptionID Habib Metro Bank
©2013-05 MoneyGram 33
Proprietary and confidential
APIs > codeTable > response Introduction 13.05

Field Detail

Tag Datatype Information and Rules Display

version string The code table version returned. N/A


Maximum length: 20

stateProvinceInfo complex Additional Information N/A


Maximum number of 1. Data is only returned for Canada, Mexico, and the
occurrences: unbounded United States
Business rule to code:
At present; State is required and must be submmited if
Sender/ReceiverCountry & photoIDCountry is equal to
Canada, Mexico and the United States.

countryCode string None N/A


Length: 3
Must be a valid country code

stateProvinceCode string Additional Information N/A


Length: 2 1. The value is a valid state code to be used whenever a
state code is required

stateProvinceName string None N/A


Maximum length: 40

countryInfo complex None N/A


Maximum number of
occurrences: unbounded

countryCode string Additional Information N/A


Length: 3 1. The value is a valid country code to be used whenever a
country code is required
Habib Metro Bank
34 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > codeTable > response

Tag Datatype Information and Rules Display

countryName string None N/A


Maximum length: 50

countryLegacyCode string None N/A


Length: 2

sendActive boolean Additional Information N/A


1. If true, agents in the country may perform send
transactions
2. If false, agents in the country may not perform send
transactions

receiveActive boolean Additional Information N/A


1. If true, agents in the country may perform receive
transactions
2. If false, agents in the country may not perform receive
transactions
Business Rule to Code:

List of destination countries must be filtered at the


GUI level to include only countries with flag set to
true

directedSendCountry boolean Additional Information N/A


1. If true, the country has directed send partners
2. If false, the country does not have directed send
partners

Habib Metro Bank


©2013-05 MoneyGram 35
Proprietary and confidential
APIs > codeTable > response Introduction 13.05

Tag Datatype Information and Rules Display

mgDirectedSendCountry boolean Additional Information N/A


1. If true, the country has MoneyGram-managed directed
send partners
2. If false, the country does not have MoneyGram-managed
directed send partners

baseReceiveCurrency string The country's default receive currency. N/A


Length: 3
Must be a valid currency code

currencyInfo complex None N/A


Maximum number of
occurrences: unbounded

currencyCode string Additional Information N/A


Length: 3 1. The value is a valid currency code to be used whenever a
currency code is required

currencyName string None N/A


Maximum length: 40

currencyPrecision int The number of digits used by the currency for fractional N/A
amounts.

countryCurrencyInfo complex None N/A


Maximum number of
occurrences: unbounded

countryCode string None N/A


Length: 3
Must be a valid country code

Habib Metro Bank


36 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > codeTable > response

Tag Datatype Information and Rules Display

baseCurrency string None N/A


Length: 3
Must be a valid currency code

localCurrency string None N/A


Length: 3
Must be a valid currency code

receiveCurrency string None N/A


Length: 3
Must be a valid currency code

indicativeRateAvailable boolean Additional Information N/A


1. If true, the country uses estimated rates if valid rates are
not available in the local currency
2. If true, the country does not use estimated rates if valid
rates are not available in the local currency

deliveryOption string Additional Information N/A


Must be a valid delivery option 1. If value returned, the country currency information
applies only to the specific delivery option

receiveAgentID string Additional Information N/A


Length: 8 1. If value returned, the country currency information
applies only to the specific agent ID
2. receiveAgentID could be required to complete a Send
transaction

receiveAgentAbbreviation string The abbreviated form of the agent's name to use if there isn't N/A
enough space to use receiveAgentName.
Maximum length: 10

Habib Metro Bank


©2013-05 MoneyGram 37
Proprietary and confidential
APIs > codeTable > response Introduction 13.05

Tag Datatype Information and Rules Display

mgManaged string Whether or not the agent can or must perform MoneyGram- N/A
managed receiver registration for directed send transactions
Maximum length: 20
that require a receiver registration number (RRN).
Valid values: NOT ALLOWED,
Additional Information
REQUIRED, optional
1. This information is also in the feeInfo field of the
feeLookupResponse transactions that require registration
2. NOT ALLOWED: MoneyGram does not manage the receiver
registration, therefore registration is not allowed for the
specified delivery option.
3. REQUIRED: MoneyGram requires a receiver registration as
Send transactions require an RRN

agentManaged string Whether or not partner-managed receiver registration is N/A


required for directed send transactions that require
Maximum length: 20
registration.
Valid values: NOT ALLOWED,
Additional Information
REQUIRED, optional
1. NOT ALLOWED:The receiving agent (partner) does not allow
receiver registration.
2. REQUIRED: The receiving agent (partner) requires a
registration information from the in order to process a
Send transaction

validationExprs string None N/A


Maximum length: 20

checkDigitAlg string Additional Information N/A


Maximum length: 10 1. Field not currently used

deliveryOptionInfo complex None N/A


Maximum number of
occurrences: unbounded

Habib Metro Bank


38 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > codeTable > response

Tag Datatype Information and Rules Display

dssOption boolean Additional Information N/A


1. If true, the delivery option is a directed send option
2. If false, the delivery option is not a directed send option

deliveryOptionID int The delivery option's numeric ID number. N/A


Maximum inclusive value: 999

deliveryOption string The delivery option's alphabetic ID. N/A


Additional Information
1. The value is a valid delivery option to be used whenever a
delivery option is required

deliveryOptionName string The delivery option's display name. N/A


Maximum length: 40
Business Rule to code:
GUI must display the text returned on the
deliveryOptionName if deliveryOption is obtained from code
Table

rewardsInfo complex Contains information on the MoneyGram Rewards program N/A


available to the agent's consumers.
Maximum number of
occurrences: unbounded

programType string The program type code of the MoneyGram Rewards program N/A
available to the agent's consumers.
Maximum length: 3
Additional Information
1. Maps to the programType returned in
rewardsRegistrationInfo

name string The name of the MoneyGram Rewards program available to N/A
the agent's consumers.
Maximum length: 64
Habib Metro Bank
©2013-05 MoneyGram 39
Proprietary and confidential
APIs > codeTable > response Introduction 13.05

Tag Datatype Information and Rules Display

description string The description of the MoneyGram Rewards program N/A


available to the agent's consumers.
Maximum length: 40

rewardsCardTypeInfo complex Contains information on the MoneyGram Rewards card N/A


available to the agent's consumers.
Maximum number of
occurrences: unbounded

cardType string The MoneyGram Rewards card type available to the agent's N/A
consumers.
Maximum length: 4
Additional Information
1. Maps to the cardType returned in
rewardsRegistrationInfo

description string The description of the MoneyGram Rewards card available to N/A
the agent's consumers.
Maximum length: 40

rewardsRegistrationInfo complex Contains information on MoneyGram Rewards program and N/A


card types available to the agent's consumers.
Maximum number of
occurrences: unbounded Additional Information
1. Each occurrence maps the programType to the
programType in rewardsInfo
2. Each occurrence maps the cardType to the cardType in
rewardsCardTypeInfo

country string None N/A


Length: 3
Must be a valid country code

programType string None N/A


Maximum length: 3

Habib Metro Bank


40 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > codeTable > response

Tag Datatype Information and Rules Display

cardType string None N/A


Maximum length: 4

allowPrePrintedCards boolean Additional Information N/A


1. If true, the program and card combination allows agents
to use pre-printed Rewards cards
2. If false, the program and card combination does not
allow agents to use pre-printed Rewards cards

allowStandardCards boolean Additional Information N/A


1. If true, the program and card combination allows agents
to use standard Rewards enrollment
2. If false, the program and card combination does not
allow agents to use standard Rewards enrollment

Habib Metro Bank


©2013-05 MoneyGram 41
Proprietary and confidential
APIs > countryInfo Introduction 12.11

3. countryInfo

The agent application uses the countryInfo API to obtain country information required to perform
transactions.

Additional Information
1. The agent application must use the countryInfo API together with the currencyInfo and
stateProvinceInfo APIs to get all required code table information
2. Agents must store the information returned in the countryInfoResponse
3. The agent must create an automated process to obtain updates during non-business hours; the
agent must also create a manual process to obtain updates in the event system changes occur
during business hours
4. The code table information only needs to be updated by one location using the model agent ID;
the information may be shared among locations

countryInfoRequest

Field Summary

• countryFilter

Habib Metro Bank


42 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > countryInfo > request

Field Detail

Tag Datatype Information and Rules Input Data

countryFilter string Additional Information application optional


Valid values: 1. If value is MG_DIRECTED_SEND, the
MG_DIRECTED_SEND, countryInfoResponse only returns information for
RECEIVE_ACTIVE countries with MoneyGram-managed receive
partners
2. If value is RECEIVE_ACTIVE, the
countryInfoResponse only returns information for
countries where agents can perform receive
transactions
3. If no value is specified, the countryInfoResponse
returns information for all countries

Habib Metro Bank


©2013-05 MoneyGram 43
Proprietary and confidential
APIs > countryInfo > response Introduction 12.11

countryInfoResponse

Field Summary

• countryInfo
□ countryCode
□ countryName
□ countryLegacyCode
□ sendActive
□ receiveActive
□ directedSendCountry
□ mgDirectedSendCountry
□ baseReceiveCurrency

Habib Metro Bank


44 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > countryInfo > response

Field Detail

Tag Datatype Information and Rules Display

countryInfo complex None N/A


Maximum number of
occurrences: unbounded

countryCode string Additional Information N/A


Length: 3 1. The value is a valid country code to be used whenever a
country code is required

countryName string None N/A


Maximum length: 50

countryLegacyCode string None N/A


Length: 2

sendActive boolean Additional Information N/A


1. If true, agents in the country may perform send
transactions
2. If false, agents in the country may not perform send
transactions

receiveActive boolean Additional Information N/A


1. If true, agents in the country may perform receive
transactions
2. If false, agents in the country may not perform receive
transactions

directedSendCountry boolean Additional Information N/A


1. If true, the country has directed send partners
2. If false, the country does not have directed send
partners
Habib Metro Bank
©2013-05 MoneyGram 45
Proprietary and confidential
APIs > countryInfo > response Introduction 13.05

Tag Datatype Information and Rules Display

mgDirectedSendCountry boolean Additional Information N/A


1. If true, the country has MoneyGram-managed directed
send partners
2. If false, the country does not have MoneyGram-managed
directed send partners

baseReceiveCurrency string The country's default receive currency. N/A


Length: 3
Must be a valid currency code

Habib Metro Bank


46 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > currencyInfo

4. currencyInfo

The agent application uses the currencyInfo API to obtain currency information required to
perform transactions.

Additional Information
1. The agent application must use the currencyInfo API together with the countryInfo and
stateProvinceInfo APIs to get all required code table information
2. Agents must store the information returned in the currencyInfoResponse
3. The agent must create an automated process to obtain updates during non-business hours; the
agent must also create a manual process to obtain updates in the event system changes occur
during business hours
4. The code table information only needs to be updated by one location using the model agent ID;
the information may be shared among locations

currencyInfoRequest

currencyInfoResponse

Field Summary

• currencyInfo
□ currencyCode
□ currencyName
□ currencyPrecision

Habib Metro Bank


©2013-05 MoneyGram 47
Proprietary and confidential
APIs > currencyInfo > response Introduction 12.11

Field Detail

Tag Datatype Information and Rules Display

currencyInfo complex None N/A


Maximum number of
occurrences: unbounded

currencyCode string None N/A


Length: 3
Must be a valid currency code

currencyName string None N/A


Maximum length: 40

currencyPrecision int The number of digits used by the currency for fractional N/A
amounts.

Habib Metro Bank


48 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > stateProvinceInfo

5. stateProvinceInfo

The agent application uses the stateProvinceInfo API to obtain state and province information
required to perform transactions.

Additional Information
1. The agent application must use the stateProvinceInfo API together with the countryInfo
and currencyInfo APIs to get all required code table information
2. Agents must store the information returned in the stateProvinceInfoResponse
3. The agent must create an automated process to obtain updates during non-business hours; the
agent must also create a manual process to obtain updates in the event system changes occur
during business hours
4. The code table information only needs to be updated by one location using the model agent ID;
the information may be shared among locations

stateProvinceInfoRequest

Field Summary

• stateProvinceFilter

Habib Metro Bank


©2013-05 MoneyGram 49
Proprietary and confidential
APIs > stateProvinceInfo > request Introduction 12.11

Field Detail

Tag Datatype Information and Rules Input Data

stateProvinceFilter string Additional Information application optional


Valid values: CAN, MEX, 1. If value is CAN, the stateProvinceInfoResponse
USA only returns information for provinces in Canada
2. If value is MEX, the stateProvinceInfoResponse
only returns information for states in Mexico
3. If value is USA, the stateProvinceInfoResponse
only returns information for states in the United
States
4. If no value is specified, the
stateProvinceInfoResponse returns state and
province information for Canada, Mexico, and the
United States

Habib Metro Bank


50 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > stateProvinceInfo > response

stateProvinceInfoResponse

Field Summary

• version
• stateProvinceInfo
□ countryCode
□ stateProvinceCode
□ stateProvinceName

Habib Metro Bank


©2013-05 MoneyGram 51
Proprietary and confidential
APIs > stateProvinceInfo > response Introduction 12.11

Field Detail

Tag Datatype Information and Rules Display

version int The version number of the state/province information. N/A

stateProvinceInfo complex None N/A


Maximum number of
occurrences: unbounded

countryCode string None N/A


Length: 3
Must be a valid country code

stateProvinceCode string None N/A


Length: 2
Must be a valid state code

stateProvinceName string None N/A


Maximum length: 40

Habib Metro Bank


52 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > translations

6. translations

The agent application uses the translations API to obtain country, currency, delivery option, and
other code table information in a variety of languages.

Additional Information
1. Agents must store the information returned in the translationsResponse
2. The agent must create an automated process to obtain updates during non-business hours; the
agent must also create a manual process to obtain updates in the event system changes occur
during business hours
3. The code table information only needs to be updated by one location using the model agent ID;
the information may be shared among locations

translationsRequest

Field Summary

• languageCodes

Habib Metro Bank


©2013-05 MoneyGram 53
Proprietary and confidential
APIs > translations > request Introduction 12.11

Field Detail

Tag Datatype Information and Rules Input Data

languageCodes string Additional Information application optional


Valid values: de, en, es, 1. Field may contain more than one value as a comma-
fr separated list
2. de is German
3. en is English
4. es is Spanish
5. fr is French
6. If no value is included, the translationsResponse
returns translations for all languages

Habib Metro Bank


54 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > translations > response

translationsResponse

Field Summary

• translationsVersion
• countryTranslations
□ countryCode
□ languageCode
□ longLanguageCode
□ displayName
• deliveryOptionTranslations
□ deliveryOption
□ languageCode
□ longLanguageCode
□ displayName
• currencyTranslations
□ currencyCode
□ languageCode
□ longLanguageCode
□ displayName
• fqdoTextTranslations
□ receiveCountry
□ deliveryOption
□ receiveAgentID
□ currencyCode
□ languageCode
□ longLanguageCode
□ registrationAuthorizationText
□ speedOfDeliveryText
• industryTranslations
□ industryID
□ displayName
□ languageCode
□ longLanguageCode

Habib Metro Bank


©2013-05 MoneyGram 55
Proprietary and confidential
APIs > translations > response Introduction 13.05

Field Detail

Tag Datatype Information and Rules Display

translationsVersion string The translation version returned. N/A

countryTranslations complex None N/A


Maximum number of
occurrences: unbounded

countryCode string The country code of the country to which the translation N/A
applies.
Length: 3
Must be a valid country code

languageCode string The language into which the country name has been N/A
translated.
Valid values: de, en, es, fr
Additional Information
1. de is German
2. en is English
3. es is Spanish
4. fr is French

longLanguageCode string None N/A


Maximum length: 3

displayName string The translated name of the country. N/A


Field Rules
1. Up to 50 characters if language is English
2. Up to 2000 characters if language is not English

deliveryOptionTranslations complex None N/A


Maximum number of
occurrences: unbounded Habib Metro Bank
56 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > translations > response

Tag Datatype Information and Rules Display

deliveryOption string The delivery option to which the translation applies. N/A
Must be a valid delivery option

languageCode string The language into which the name of the delivery option has N/A
been translated.
Valid values: de, en, es, fr
Additional Information
1. de is German
2. en is English
3. es is Spanish
4. fr is French

longLanguageCode string None N/A


Maximum length: 3

displayName string The translated name of the delivery option. N/A

currencyTranslations complex None N/A


Maximum number of
occurrences: unbounded

currencyCode string The currency code of the currency to which the translation N/A
applies.
Length: 3
Must be a valid currency code

languageCode string The language into which the name of the currency has been N/A
translated.
Valid values: de, en, es, fr
Additional Information
1. de is German
2. en is English
3. es is Spanish
4. fr is French
Habib Metro Bank
©2013-05 MoneyGram 57
Proprietary and confidential
APIs > translations > response Introduction 13.05

Tag Datatype Information and Rules Display

longLanguageCode string None N/A


Maximum length: 3

displayName string The translated name of the currency. N/A

fqdoTextTranslations complex None N/A


Maximum number of
occurrences: unbounded

receiveCountry string None N/A


Length: 3
Must be a valid currency code

deliveryOption string None N/A


Must be a valid delivery option

receiveAgentID string None N/A


Length: 8

currencyCode string None N/A


Length: 3
Must be a valid currency code

languageCode string The language into which the FQDO text has been translated. N/A
Valid values: de, en, es, fr Additional Information
1. de is German
2. en is English
3. es is Spanish
4. fr is French

Habib Metro Bank


58 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > translations > response

Tag Datatype Information and Rules Display

longLanguageCode string None N/A


Maximum length: 3

registrationAuthorizatio string The FQDO's translated registration authorization text. N/A


nText

speedOfDeliveryText string The FQDO's translated speed of delivery text. N/A

industryTranslations complex None N/A


Maximum number of
occurrences: unbounded

industryID string The industry to which the translation applies. N/A


Maximum length: 6

displayName string The translated name of the industry. N/A

languageCode string The language into which the industry name has been N/A
translated.
Valid values: de, en, es, fr
Additional Information
1. de is German
2. en is English
3. es is Spanish
4. fr is French

longLanguageCode string None N/A


Maximum length: 3

Habib Metro Bank


©2013-05 MoneyGram 59
Proprietary and confidential
APIs > doddFrankStateRegulatorInfo Introduction 12.11

7. doddFrankStateRegulatorInfo

The agent application uses the doddFrankStateRegulatorInfo API to obtain state regulator
contact information to print on confirmation slips and receipts.

doddFrankStateRegulatorInfoRequest

Field Summary

• dfJurisdiction

Habib Metro Bank


60 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > doddFrankStateRegulatorInfo > request

Field Detail

Tag Datatype Information and Rules Input Data

dfJurisdiction string The US state or territory for which to return regulator application
information.
Length: 2
Additional Information
Must be a valid state code
1. If no value is provided, the response returns
information for all states and territories

Habib Metro Bank


©2013-05 MoneyGram 61
Proprietary and confidential
APIs > doddFrankStateRegulatorInfo > response Introduction 12.11

doddFrankStateRegulatorInfoResponse

Field Summary

• stateRegulatorInfo □ stateRegulatorPhone
□ version □ stateRegulatorName
□ dfJurisdiction • longLanguageCode
□ stateRegulatorURL • textTranslation

Habib Metro Bank


62 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 13.05 APIs > variableReceiptInfo

Field Detail

Tag Datatype Information and Rules Display

stateRegulatorInfo complex None N/A


Maximum number of
occurrences: unbounded

version int The version number of the N/A


state regulator
information.

dfJurisdiction string None N/A

stateRegulatorURL string The state regulator's Web N/A


site address.
Maximum length: 2000

stateRegulatorPhone string The state regulator's N/A


telephone number.
Maximum length: 100

stateRegulatorName complex None N/A


Maximum number of
occurrences: unbounded

longLanguageCode string The language state required


regulator's name.
Length: 2

textTranslation string The translated regulator's required


name.
Maximum length: 2000

Habib Metro Bank


©2013 MoneyGram 63
Proprietary and confidential
APIs > doddFrankStateRegulatorInfo Introduction 12.11

8. variableReceiptInfo

The agent application uses the variableReceiptInfo API to obtain variable receipt information to
print on redirect or as Terms and Conditions during a Money transfer transaction.
MoneyGram uses Unicode to encode character strings that need to be displayed on screens and/or
receipts. Unicode is a standard which defines a universal character set. In XML, representations of
Unicode are: &#1234; or &#x10FFFD;

For example,
ó is Unicode (U+00F3) which is decimal 243. This can be represented in XML as either &#243; or
&#x00F3;

AgentConnect clients will need to use the appropriate parsing algorithms to convert from the XML
Unicode representation to the encoding needed for their own display devices and printers.

See http://www.w3.org/TR/unicode-xml/ for more information on the XML Unicode standard and
http://www.unicode.org/charts/ for information on Unicode characters themselves.

variableReceiptInfoRequest

Field Summary

• longLanguageCode

Habib Metro Bank


64 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > doddFrankStateRegulatorInfo > request

Field Detail

Tag Datatype Information and Rules Input Data

longLanguageCode string The language in which receipt information to be Application/ required


returned. GUI
Length: 3
Additional Information
Must be a valid 3-letter
language code 1. Valid values: spa: Spanish, eng:English

Habib Metro Bank


©2013-05 MoneyGram 65
Proprietary and confidential
APIs > doddFrankStateRegulatorInfo > response Introduction 12.11

variableReceiptInfoResponse

Field Summary

□ version
□ receiptText
• receiptTextType
• textTranslation

Habib Metro Bank


66 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > doddFrankStateRegulatorInfo > response

Field Detail

Tag Datatype Information and Rules Display

version int The version number of the variable receipt information. Optional

receiptText string None Optional

receiptTextType string Type of receipt such as termsAcceptanceSend, Optional


redirectInfoReceive etc.

textTranslation string The translated regulator's name. Optional


Maximum length: 2000

Habib Metro Bank


©2013-05 MoneyGram 67
Proprietary and confidential
APIs > doddFrankStateRegulatorInfo Introduction 12.11

9. industry

The agent application uses the industry API to obtain industry ID and names information for bill
payment.

industryRequest

Field Summary

• (None)

Habib Metro Bank


68 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > doddFrankStateRegulatorInfo > request

Field Detail

Tag Datatype Information and Rules Input Data

(None) N/A None N/A

Habib Metro Bank


©2013-05 MoneyGram 69
Proprietary and confidential
APIs > doddFrankStateRegulatorInfo > response Introduction 12.11

industryResponse

Field Summary

• industryInfoList
□ industryID
□ industryName

Habib Metro Bank


70 ©2013-05 MoneyGram
Proprietary and confidential
Introduction 12.11 APIs > doddFrankStateRegulatorInfo > response

Field Detail

Tag Datatype Information and Rules Display

industryInfoList complex None N/A


Maximum number of
occurrences: unbounded

industryID String Generally the three letter code of Industries are returned. N/A
6 characters

industryName string Name of the industry, such as GAS, ELECTRIC, MORTGAGE N/A
etc.

Habib Metro Bank


©2013-05 MoneyGram 71
Proprietary and confidential
Habib Metro Bank
Table of Figures

Table of Figures
Figure 1: Explanation of Process Flow Diagrams ...................................................................... vi
Figure 2: Example Error Dialog .............................................................................................. 9
Table 1: Character Mapping ................................................................................................. 10
Figure 3: AgentConnect High Availability Diagram .................................................................. 11
Figure 4: Product Development Cycle ................................................................................... 12
Figure 5: Proxy Configuration Screen .................................................................................... 19

Habib Metro Bank


©2013-05 MoneyGram 73
Proprietary and confidential
CORPORATE OFFICE 2828 N. Harwood, Floor
15
Dallas, TX 75201
USA

TOLL FREE 1.800.328.5678

WEB SITE www.moneygram.com


Habib Metro Bank

You might also like