Introduction to APIs

API General Message Layout and Requirements

API Message Format

About the Response to the User

About Response Time

Back Office Web Access

Currency Amounts and Conversion Instructions

PIN Encryption

Alternatives to Using Card Number in the CardAPI

API User Credentials

CardHolder API’s

Change Card Status – Function 004

Change Card PIN – Function 005

Deposit to Card Number – Function 007

Message Response Lookup – Function 008

View Statement Details by Card Number – Function 010

Validate PIN – Function 012

Set Card PIN – Function 022

Get Card Status – Function 023

Get Card Account Balance – Function 024

Cardholder Fees – Function 030

Adjustment – Function 031

Card Linking – Function 032

Card Inquiry – Function 033

Cash Out – Function 034

Card to Card Transfer – Function 035

Update Cardholder – Function 036

PIN Reset – Function 037

PIN Request – Function PINRequest

View Statement Details by Account Number – Function 039

Unlock Bad PIN Tries – Function 040

Set Condition Check for Existing Cardholder – Function SetCondCheck

Manage MCC Blocks – Function MCCBlock

Set Cardholder Level Limit – Function CardLimit

Get Configurable Card Limits – Function GetCardLimits

OFAC Check – Function 056

View Statement Details by Card Number (V2) – Function 070

3DS Enrolment Control – Function THREEDS

3DS Whitelist Management – Function Manage3DSWhitelist

Card Risk Level API Calls

Update Card Risk Level – Function = UpdateRiskLevel

Get Card Risk Level – Function = GetRiskLevel

Instant Card Issue – Function = InstantCardIssue

Specialized Financial Transactions

Validate Cardholder Verification Data – Function ValidateCVV2

Get Dynamic CVV (CVV3) – Function GetCVV3

General Web APIs

Change Password – ChangePswd

Message Heart Beat – Function 025

Wallet API Functions

Create Wallet for Existing Cardholder – Function CreateCardholderWallet

Create Wallet Multi-Currency Card Purse – Function CreateCardPurse

Retrieve Card Purse Identification from Wallet – Function GetCardPurses

Multi-currency Card Purse to Purse Transfer – Function PurseFundsTransfer

Processing Codes

Statements

Transaction Processing Codes

Response Codes

Card/Account Type Definitions

API Error Codes

FAQs

Card Inquiry – Function 033

Function 033 returns quick summary of personal and account information for a given card number. Besides card balances, it also returns card status, account number, card type and several fields for personal information. Card Inquiry returns the response in XML format.

Inputs Description Required Data Type
FunctionID 033 Y
P1 PAN or ALT ID Y (16,19) numeric
Outputs Description
XML The data will be passed back in a well-formed XML document. The error code processing will be contained in the P1 node that contains two attributes errnumber and errdescription. Therefore, if the errnumber attribute is equal to “000” the document will contain a “cardinfo” node; otherwise, it will not.
P1 Error Code N
P2 Error Text N

Response XML:

Card Fields Description
AccountBaseCurrency Currency code associated with the account.
CardType Two-digit value representing the type of card.
AccountNumber Account number associated with the card.
BankRoutingNumber Routing number associated with the card.
CardNumber The card number
CNID Cardnumber ID
CardStatus Card Status
0 Issued not Active
1 Open
2 Lost
3 Stolen
4 Deposit Only
6 Check Reason
9 Closed
A Pin Change Required
C Phone Number verification
PinTriesExceeded If the maximum number of allowable pin tries has been exceeded.
BadPinTries Number of times the card has had an incorrect pin entered.
ExpirationDate Expiration date of the card.
CardEffectiveEnd Effective end date of the card.
Client Client of the card.
PhonecardNumber Phone number associated with the card.
AvailBal Available balance on the card. This is an implied decimal amount.
LedgerBal Ledger balance on the card. This is an implied decimal amount.
DistributorCode Distributor code.
LoadAmount Amount initially loaded onto the card.
CompanyName Company name associated with the card.
CardStyle Card style used by CardUSA.
DeliveryType Delivery type of the card. N = Normal, O = Overnight, VC = Virtual Card
InitialLoadProcessed Datetime when the card’s initial load was processed.
Cardholder Fields Description
First Name First name of the card holder.
Middle Initial Middle initial of the card holder.
Last Name Last name of the card holder.
Address1 Primary address of the card holder.
Address2 Additional address information.
City City of the card holder.
State State of the card holder.
Zip Zip code of the card holder.
Country Country of the card holder.
Phone Phone number of the card holder.
DOB Date of birth of the card holder.
SSN Social security number of the card holder.
SecurityField1 Security Field 1. Can contain mother’s maiden name or license number.
SecurityField2 Security Field 2. Can contain mother’s maiden name or license number.
UDF1 – UDF5 User defined field. Contains special data per client requirements.
EmailAddr Email address associated with the card holder.
CardHolderID ID associated with the card holder.
Example: Card Inquiry Request
https://api.m2fin.com:8443/AuthENGINAPI/AuthENGINAPI?CID=5&CUSR=myuseraccount&CPWD=passwor dassignedtome&FUNC=033&MSGID=00001089067000027&P1=
Example: Card Inquiry Response
<?xml version=”1.0″ encoding=”UTF-8″ ?>
</api func=”033″>
<p1 errdescription=”” errnumber=”0000″ />
<cardinfo>
<card>
<AccountBaseCurrency>840</AccountBaseCurrency>
<CardType>20</CardType>
<AccountNumber>020000038107</AccountNumber>
<CardNumber>################</CardNumber> *
<CNID>2E7C059211FF85BEE0400A0A18021DB8</CNID>
<CardStatus>0</CardStatus>
<PinTriesExceeded>0</PinTriesExceeded>
<BadPinTries>0</BadPinTries>
<ExpirationDate>1201</ExpirationDate>
<Client />
<PhonecardNumber />
<AvailBal>0000000100</AvailBal>
<LedgerBal>0000000100</LedgerBal>
<DistributorCode />
<LoadAmount>000000000</LoadAmount>
<CompanyName />
<CardStyle />
<DeliveryType />
</card>
<cardholder>
<FirstName>Fname</FirstName>
<MiddleInitial>Mname</MiddleInitial>
<LastName>Lname</LastName>
<Address1>Addr1</Address1>
<Address2>Addr2</Address2>
<City>Maitland</City>
<State>FL</State>
<Zip>32751</Zip>
<UDF1>udf1-123456789-123456789</UDF1>
<UDF2>udf2</UDF2>
<UDF3>udf3</UDF3>
<UDF4>udf4</UDF4>
<UDF5>udf5</UDF5>
<EmailAddr>email@m2-corp.com</EmailAddr>
</cardholder>
</cardinfo>
* Value returned is the value submitted, either the cardnumber or the alternate ID.