Payment Processing – Credit, Check, Debit

ProcessCreditCard

Endpoint URL: https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessCreditCard

Method: SOAP (Action: ProcessCreditCard)

Description: Submits a real-time credit card transaction for authorization and optional capture. This is the core processing endpoint for credit card payments, supporting both one-time and token-based transactions.

Request Parameters:

Name
Type
Required
Description

Username

string

Yes

API credential username

Password

string

Yes

API credential password

TransType

string

Yes

Transaction type: Sale, Auth, Return, or PostAuth

Amount

decimal

Yes

Amount to charge in dollars (e.g., 10.00)

NameOnCard

string

No

Cardholder's name

CcAccountNum

string

Conditional

Raw credit card number — required if no token is used

CcExpDate

string

Conditional

Expiration date (MMYY) — required if using raw card data

CcInfoKey

string

Conditional

Tokenized card key — required if not passing card number directly

Cvv2

string

Optional

3- or 4-digit CVV code

ClientTransactionID

string

No

Optional merchant-side transaction reference

InvoiceNumber

string

No

Optional invoice number for reconciliation

Street

string

No

Optional AVS field: billing address street

Zip

string

No

Optional AVS field: billing ZIP code

Email

string

No

Optional email address for receipt or records

ExtData

string

No

Optional XML-formatted metadata for advanced options (see Notes)

Notes:

  • Either CcAccountNum + CcExpDate or CcInfoKey must be provided — never both.

  • TransType values:

    • Sale – Authorizes and captures funds

    • Auth – Authorization only (for later capture via PostAuth)

    • Return – Issues a refund for a previous sale

    • PostAuth – Captures funds from a previous Auth

  • ExtData can be used to pass flags like <![CDATA[<CustRef>12345</CustRef><Force>T</Force>]]>

  • CVV is not stored and must be passed each time (if required).

  • This endpoint returns a response object that includes:

    • Result (0 = success)

    • RespMSG (e.g., "Approved")

    • AuthCode

    • TransRefID (used for lookups and reporting)

SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://TPISoft.com/SmartPayments/ProcessCreditCard"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessCreditCard xmlns="http://TPISoft.com/SmartPayments/">
      <UserName>string</UserName>
      <Password>string</Password>
      <TransType>string</TransType>
      <CardNum>string</CardNum>
      <ExpDate>string</ExpDate>
      <MagData>string</MagData>
      <NameOnCard>string</NameOnCard>
      <Amount>string</Amount>
      <InvNum>string</InvNum>
      <PNRef>string</PNRef>
      <Zip>string</Zip>
      <Street>string</Street>
      <CVNum>string</CVNum>
      <ExtData>string</ExtData>
    </ProcessCreditCard>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessCreditCardResponse xmlns="http://TPISoft.com/SmartPayments/">
      <ProcessCreditCardResult>
        <Result>int</Result>
        <RespMSG>string</RespMSG>
        <Message>string</Message>
        <Message1>string</Message1>
        <Message2>string</Message2>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <HostCode>string</HostCode>
        <HostURL>string</HostURL>
        <ReceiptURL>string</ReceiptURL>
        <GetAVSResult>string</GetAVSResult>
        <GetAVSResultTXT>string</GetAVSResultTXT>
        <GetStreetMatchTXT>string</GetStreetMatchTXT>
        <GetZipMatchTXT>string</GetZipMatchTXT>
        <GetCVResult>string</GetCVResult>
        <GetCVResultTXT>string</GetCVResultTXT>
        <GetGetOrigResult>string</GetGetOrigResult>
        <GetCommercialCard>string</GetCommercialCard>
        <WorkingKey>string</WorkingKey>
        <KeyPointer>string</KeyPointer>
        <ExtData>string</ExtData>
      </ProcessCreditCardResult>
    </ProcessCreditCardResponse>
  </soap:Body>
</soap:Envelope>

SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ProcessCreditCard xmlns="http://TPISoft.com/SmartPayments/">
      <UserName>string</UserName>
      <Password>string</Password>
      <TransType>string</TransType>
      <CardNum>string</CardNum>
      <ExpDate>string</ExpDate>
      <MagData>string</MagData>
      <NameOnCard>string</NameOnCard>
      <Amount>string</Amount>
      <InvNum>string</InvNum>
      <PNRef>string</PNRef>
      <Zip>string</Zip>
      <Street>string</Street>
      <CVNum>string</CVNum>
      <ExtData>string</ExtData>
    </ProcessCreditCard>
  </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ProcessCreditCardResponse xmlns="http://TPISoft.com/SmartPayments/">
      <ProcessCreditCardResult>
        <Result>int</Result>
        <RespMSG>string</RespMSG>
        <Message>string</Message>
        <Message1>string</Message1>
        <Message2>string</Message2>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <HostCode>string</HostCode>
        <HostURL>string</HostURL>
        <ReceiptURL>string</ReceiptURL>
        <GetAVSResult>string</GetAVSResult>
        <GetAVSResultTXT>string</GetAVSResultTXT>
        <GetStreetMatchTXT>string</GetStreetMatchTXT>
        <GetZipMatchTXT>string</GetZipMatchTXT>
        <GetCVResult>string</GetCVResult>
        <GetCVResultTXT>string</GetCVResultTXT>
        <GetGetOrigResult>string</GetGetOrigResult>
        <GetCommercialCard>string</GetCommercialCard>
        <WorkingKey>string</WorkingKey>
        <KeyPointer>string</KeyPointer>
        <ExtData>string</ExtData>
      </ProcessCreditCardResult>
    </ProcessCreditCardResponse>
  </soap12:Body>
</soap12:Envelope>

HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx/ProcessCreditCard HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

UserName=string&Password=string&TransType=string&CardNum=string&ExpDate=string&MagData=string&NameOnCard=string&Amount=string&InvNum=string&PNRef=string&Zip=string&Street=string&CVNum=string&ExtData=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns="http://TPISoft.com/SmartPayments/">
  <Result>int</Result>
  <RespMSG>string</RespMSG>
  <Message>string</Message>
  <Message1>string</Message1>
  <Message2>string</Message2>
  <AuthCode>string</AuthCode>
  <PNRef>string</PNRef>
  <HostCode>string</HostCode>
  <HostURL>string</HostURL>
  <ReceiptURL>string</ReceiptURL>
  <GetAVSResult>string</GetAVSResult>
  <GetAVSResultTXT>string</GetAVSResultTXT>
  <GetStreetMatchTXT>string</GetStreetMatchTXT>
  <GetZipMatchTXT>string</GetZipMatchTXT>
  <GetCVResult>string</GetCVResult>
  <GetCVResultTXT>string</GetCVResultTXT>
  <GetGetOrigResult>string</GetGetOrigResult>
  <GetCommercialCard>string</GetCommercialCard>
  <WorkingKey>string</WorkingKey>
  <KeyPointer>string</KeyPointer>
  <ExtData>string</ExtData>
</Response>

Valid Input Reference Characters

Table 1. Valid Data Characters

DEC
HEX
Character
DEC
HEX
Character
DEC
HEX
Character

32

20

(space)

63

3F

?

96

60

<code>`</code>

33

21

!

64

40

@

97

61

a

34

22

65

42

A

98

62

b

35

23

#

66

42

B

99

63

c

36

24

$

67

43

C

100

64

d

37

25

%

68

44

D

101

65

e

38

26

&

69

45

E

102

66

f

39

27

70

46

F

103

67

g

40

28

(

71

47

G

104

68

h

41

29

)

72

48

H

105

69

i (typo note below)

42

2A

*

73

49

I

106

6A

j

43

2B

+

74

4A

J

107

6B

k

44

2C

,

75

4B

K

108

6C

l

45

2D

76

4C

L

109

6D

m

46

2E

.

77

4D

M

110

6E

n

47

2F

/

78

4E

N

111

6F

o

48

30

0

79

4F

O

112

70

p

49

31

1

80

50

P

113

71

q

50

32

2

81

51

Q

114

72

r

51

33

3

82

52

R

115

73

s

52

34

4

83

53

S

116

74

t

53

35

5

84

54

T

117

75

u

54

36

6

85

55

U

118

76

v

55

37

7

86

56

V

119

77

w

56

38

8

87

57

W

120

78

x

57

39

9

88

58

X

121

79

y

58

3A

:

89

59

Y

122

7A

z

59

3B

;

90

5A

Z

123

7B

{

60

3C

<

91*

124

7C

|

61

3D

=

94

5E

^

125

7D

}

62

3E

>

95

5F

_

126

7E

~

Table 2. XML Character Removal

These characters must be stripped by the Payment Server before submitting data to Web Service operations, to ensure correct XML parsing.

Character
XML Parser Encoding

<

&lt;

>

&gt;

&

&amp;

&apos;

&quot;

Example: Character Removal in Action

If you submit:

  • NameOnCard = "John & James" → The & is stripped → processed as John James

  • NameOnCard = "John &amp; James" → Processed as John amp; James

RepeatSale

Description

Creates a new charge by repeating billing information used by a previous sale using its PNRef. Ideal for processing payments without re-entering full card details.

Endpoint

https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessCreditCard

Required Parameters

Parameter
Required
Description

UserName

Yes

Merchant’s API username.

Password

Yes

Merchant’s API password.

TransType

Yes

Must be set to Repeat Sale.

PNRef

Yes

Reference number of the original sale to be repeated.

Sample Request

<Request>
  <UserName>test</UserName>
  <Password>123</Password>
  <TransType>Repeat Sale</TransType>
  <PNRef>2329</PNRef>
</Request>

Sample Response

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="https://secure.ftipgw.com/ArgoFire/">
  <Result>0</Result>
  <RespMSG>Approved</RespMSG>
  <Message>APPROVAL VITAL2</Message>
  <AuthCode>VITAL2</AuthCode>
  <PNRef>2332</PNRef>
  <GetCommercialCard>False</GetCommercialCard>
</Response>

Response Field Notes

  • Result = 0 → indicates success

  • RespMSG → human-readable status (Approved)

  • Message → detailed response message (APPROVAL VITAL2)

  • AuthCode → authorization reference for this RepeatSale transaction

  • PNRef → new reference number assigned to the RepeatSale

  • GetCommercialCardFalse indicates the card is not a commercial card

Reversal

Description

Reverses a previously authorized but unsettled credit card transaction. Unlike a Void, which cancels the transaction before settlement, a Reversal is used to cancel an authorization that has not yet been captured.

Endpoint

https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessCreditCard

(Same endpoint used for all ProcessCreditCard operations.)

Required Parameters

Parameter
Required
Description

UserName

Yes

Merchant’s API username.

Password

Yes

Merchant’s API password.

TransType

Yes

Must be set to Reversal.

PNRef

Yes

Reference number of the original authorization to reverse.

Sample Request

<Request>
  <UserName>test</UserName>
  <Password>123</Password>
  <TransType>Reversal</TransType>
  <PNRef>2327</PNRef>
</Request>

Sample Response

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="https://secure.ftipgw.com/ArgoFire/">
  <Result>0</Result>
  <RespMSG>Approved</RespMSG>
  <Message>REVERSAL ACCEPTED</Message>
  <AuthCode>GB00029 ACCEPTED</AuthCode>
  <ExtData>Net_Count=1,Net_Amount=1,Settle_DT=2004-04-13 15:36:26</ExtData>
</Response>

Response Field Notes:

  • Result = 0 → indicates successful reversal

  • RespMSG → human-readable status (Approved)

  • Message → confirmation message (REVERSAL ACCEPTED)

  • AuthCode → authorization reference for the reversal

  • ExtData → contains batch settlement details: count, total amount, settlement timestamp

Void

Endpoint URL: https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessCreditCard

Description: Reverses (voids) a previously authorized yet unsettled credit card transaction.

Required Parameters:

Parameter
Required
Description

UserName

Yes

The merchant’s API username.

Password

Yes

The merchant’s API password.

TransType

Yes

Must be set to Void.

PNRef

Yes

The reference number of the original transaction to be voided.

CardNum

No

Must be passed as null (not required, but must not contain a value).

ExpDate

No

Must be passed as null (not required, but must not contain a value).

Sample Response

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="https://secure.ftipgw.com/ArgoFire/">
  <Result>0</Result>
  <RespMSG>Approved</RespMSG>
  <AuthCode>VITAL4</AuthCode>
  <PNRef>2309</PNRef>
</Response>

Response Field Notes

  • Result = 0 → indicates the void was successful

  • RespMSG → human-readable status (Approved)

  • AuthCode → approval reference code for the void

  • PNRef → new reference number created for the void transaction

ProcessCheck

Endpoint URL: https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessCheck

Method: SOAP (Action: ProcessCheck)

Description: Submits an electronic check (ACH) transaction using either raw bank account information or a previously generated CheckInfoKey token. Supports both Sale (debit) and Return (credit/refund) transactions.

Request Parameters:

Name
Type
Required
Description

Username

string

Yes

API credential username

Password

string

Yes

API credential password

TransType

string

Yes

Transaction type: Sale or Return

Amount

decimal

Yes

Dollar amount of the transaction (e.g., 50.00)

NameOnCheck

string

No

Optional name on the checking account

CheckNum

string

No

Optional check number (for reference only)

BankRoutingNum

string

Conditional

Required if not using CheckInfoKey

BankAccountNum

string

Conditional

Required if not using CheckInfoKey

BankAcctType

string

Conditional

"C" for Checking, "S" for Savings — required with raw account info

CheckInfoKey

string

Conditional

Tokenized bank account key — use instead of raw routing/account info

ClientTransactionID

string

No

Optional merchant-defined transaction reference

InvoiceNumber

string

No

Optional invoice number

Street

string

No

Optional billing street address (for validation/risk scoring)

Zip

string

No

Optional ZIP code (for validation/risk scoring)

Email

string

No

Optional email address for receipt

ExtData

string

No

Optional XML string for advanced configuration (see Notes)

Notes:

  • You must provide either BankRoutingNum + BankAccountNum or a valid CheckInfoKey.

  • TransType must be either:

    • Sale — Debit the account (standard ACH pull)

    • Return — Credit the account (ACH refund)

  • ExtData can carry optional XML metadata like:

<![CDATA[<Force>T</Force><Description>Subscription Payment</Description>]]>
  • Funds are not moved in real-time; ACH processing follows standard banking timelines (typically 1–3 business days).

  • The response includes fields such as:

    • Result (0 = success)

    • RespMSG (e.g., "Approved", "Invalid Routing Number")

    • TransRefID for future lookups

SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://TPISoft.com/SmartPayments/ProcessCheck"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessCheck xmlns="http://TPISoft.com/SmartPayments/">
      <UserName>string</UserName>
      <Password>string</Password>
      <TransType>string</TransType>
      <CheckNum>string</CheckNum>
      <TransitNum>string</TransitNum>
      <AccountNum>string</AccountNum>
      <Amount>string</Amount>
      <MICR>string</MICR>
      <NameOnCheck>string</NameOnCheck>
      <DL>string</DL>
      <SS>string</SS>
      <DOB>string</DOB>
      <StateCode>string</StateCode>
      <CheckType>string</CheckType>
      <ExtData>string</ExtData>
    </ProcessCheck>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessCheckResponse xmlns="http://TPISoft.com/SmartPayments/">
      <ProcessCheckResult>
        <Result>int</Result>
        <RespMSG>string</RespMSG>
        <Message>string</Message>
        <Message1>string</Message1>
        <Message2>string</Message2>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <HostCode>string</HostCode>
        <HostURL>string</HostURL>
        <ReceiptURL>string</ReceiptURL>
        <GetAVSResult>string</GetAVSResult>
        <GetAVSResultTXT>string</GetAVSResultTXT>
        <GetStreetMatchTXT>string</GetStreetMatchTXT>
        <GetZipMatchTXT>string</GetZipMatchTXT>
        <GetCVResult>string</GetCVResult>
        <GetCVResultTXT>string</GetCVResultTXT>
        <GetGetOrigResult>string</GetGetOrigResult>
        <GetCommercialCard>string</GetCommercialCard>
        <WorkingKey>string</WorkingKey>
        <KeyPointer>string</KeyPointer>
        <ExtData>string</ExtData>
      </ProcessCheckResult>
    </ProcessCheckResponse>
  </soap:Body>
</soap:Envelope>

SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ProcessCheck xmlns="http://TPISoft.com/SmartPayments/">
      <UserName>string</UserName>
      <Password>string</Password>
      <TransType>string</TransType>
      <CheckNum>string</CheckNum>
      <TransitNum>string</TransitNum>
      <AccountNum>string</AccountNum>
      <Amount>string</Amount>
      <MICR>string</MICR>
      <NameOnCheck>string</NameOnCheck>
      <DL>string</DL>
      <SS>string</SS>
      <DOB>string</DOB>
      <StateCode>string</StateCode>
      <CheckType>string</CheckType>
      <ExtData>string</ExtData>
    </ProcessCheck>
  </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ProcessCheckResponse xmlns="http://TPISoft.com/SmartPayments/">
      <ProcessCheckResult>
        <Result>int</Result>
        <RespMSG>string</RespMSG>
        <Message>string</Message>
        <Message1>string</Message1>
        <Message2>string</Message2>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <HostCode>string</HostCode>
        <HostURL>string</HostURL>
        <ReceiptURL>string</ReceiptURL>
        <GetAVSResult>string</GetAVSResult>
        <GetAVSResultTXT>string</GetAVSResultTXT>
        <GetStreetMatchTXT>string</GetStreetMatchTXT>
        <GetZipMatchTXT>string</GetZipMatchTXT>
        <GetCVResult>string</GetCVResult>
        <GetCVResultTXT>string</GetCVResultTXT>
        <GetGetOrigResult>string</GetGetOrigResult>
        <GetCommercialCard>string</GetCommercialCard>
        <WorkingKey>string</WorkingKey>
        <KeyPointer>string</KeyPointer>
        <ExtData>string</ExtData>
      </ProcessCheckResult>
    </ProcessCheckResponse>
  </soap12:Body>
</soap12:Envelope>

HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx/ProcessCheck HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

UserName=string&Password=string&TransType=string&CheckNum=string&TransitNum=string&AccountNum=string&Amount=string&MICR=string&NameOnCheck=string&DL=string&SS=string&DOB=string&StateCode=string&CheckType=string&ExtData=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns="http://TPISoft.com/SmartPayments/">
  <Result>int</Result>
  <RespMSG>string</RespMSG>
  <Message>string</Message>
  <Message1>string</Message1>
  <Message2>string</Message2>
  <AuthCode>string</AuthCode>
  <PNRef>string</PNRef>
  <HostCode>string</HostCode>
  <HostURL>string</HostURL>
  <ReceiptURL>string</ReceiptURL>
  <GetAVSResult>string</GetAVSResult>
  <GetAVSResultTXT>string</GetAVSResultTXT>
  <GetStreetMatchTXT>string</GetStreetMatchTXT>
  <GetZipMatchTXT>string</GetZipMatchTXT>
  <GetCVResult>string</GetCVResult>
  <GetCVResultTXT>string</GetCVResultTXT>
  <GetGetOrigResult>string</GetGetOrigResult>
  <GetCommercialCard>string</GetCommercialCard>
  <WorkingKey>string</WorkingKey>
  <KeyPointer>string</KeyPointer>
  <ExtData>string</ExtData>
</Response>

Auth Capture

Description

Performs both an authorization and a capture in one step—approving and settling a credit card transaction within the current batch (often used in terminal-based or dedicated flows).

Endpoint

https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessCreditCard

Required Parameters

Parameter
Required
Description

UserName

Yes

Merchant’s API username.

Password

Yes

Merchant’s API password.

TransType

Yes

Must be set to Capture.

PNRef

Yes

Reference number of the previous authorization.

Sample Request

<Request>
  <UserName>test</UserName>
  <Password>123</Password>
  <TransType>Capture</TransType>
  <PNRef>2327</PNRef>
</Request>

Sample Response

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="https://secure.ftipgw.com/ArgoFire/">
  <Result>0</Result>
  <RespMSG>Approved</RespMSG>
  <Message>ACCEPTED</Message>
  <AuthCode>GB00029 ACCEPTED</AuthCode>
  <ExtData>Net_Count=1,Net_Amount=1,Settle_DT=2004-04-13 15:36:26</ExtData>
</Response>

Response Field Notes:

  • Result = 0 → indicates successful authorization and capture

  • RespMSG → human-readable status (e.g., Approved)

  • Message → additional confirmation (e.g., ACCEPTED)

  • AuthCode → reference code confirming the transaction

  • ExtData → contains batch settlement details: count, total amount, settlement timestamp

ProcessDebitCard

Endpoint URL: https://secure.ftipgw.com/ArgoFire/transact.asmx?op=ProcessDebitCard

Method: SOAP (Action: ProcessDebitCard)

Description: Processes real-time debit card transactions. This endpoint is used when merchants are configured for debit card routing separate from standard credit card processing. It supports Sale, Auth, Return, and PostAuth transaction types, similar to ProcessCreditCard.

Request Parameters:

Name
Type
Required
Description

Username

string

Yes

API credential username

Password

string

Yes

API credential password

TransType

string

Yes

Transaction type: Sale, Auth, Return, or PostAuth

Amount

decimal

Yes

Amount to charge in dollars (e.g., 25.00)

NameOnCard

string

No

Cardholder’s name

CcAccountNum

string

Conditional

Debit card number — required if not using CcInfoKey

CcExpDate

string

Conditional

Expiration date (MMYY) — required if using raw card data

CcInfoKey

string

Conditional

Tokenized card key — used instead of card number

Cvv2

string

Optional

3- or 4-digit security code

ClientTransactionID

string

No

Optional merchant-defined reference ID

InvoiceNumber

string

No

Optional invoice number

Street

string

No

Optional AVS field: billing street address

Zip

string

No

Optional AVS field: billing ZIP code

Email

string

No

Optional email address for confirmation or metadata

ExtData

string

No

Optional XML metadata for advanced settings (see Notes)

Notes:

  • Similar in structure to ProcessCreditCard, but uses debit routing and settlement channels.

  • Either CcAccountNum + CcExpDate or CcInfoKey must be provided.

  • TransType options:

    • Sale: Authorizes and settles the debit

    • Auth: Authorization only (for delayed capture)

    • PostAuth: Capture of a previously authorized transaction

    • Return: Refund back to the original debit card

  • Response includes:

    • Result (0 = success)

    • RespMSG (e.g., “Approved”)

    • AuthCode

    • TransRefID (used for future queries and reconciliation)

  • ExtData can include optional XML such as:

    xmlCopyEdit
<![CDATA[<CustRef>7890</CustRef><Force>T</Force>]]>

SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://TPISoft.com/SmartPayments/ProcessDebitCard"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessDebitCard xmlns="http://TPISoft.com/SmartPayments/">
      <UserName>string</UserName>
      <Password>string</Password>
      <TransType>string</TransType>
      <CardNum>string</CardNum>
      <ExpDate>string</ExpDate>
      <MagData>string</MagData>
      <NameOnCard>string</NameOnCard>
      <Amount>string</Amount>
      <InvNum>string</InvNum>
      <PNRef>string</PNRef>
      <Pin>string</Pin>
      <RegisterNum>string</RegisterNum>
      <SureChargeAmt>string</SureChargeAmt>
      <CashBackAmt>string</CashBackAmt>
      <ExtData>string</ExtData>
    </ProcessDebitCard>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessDebitCardResponse xmlns="http://TPISoft.com/SmartPayments/">
      <ProcessDebitCardResult>
        <Result>int</Result>
        <RespMSG>string</RespMSG>
        <Message>string</Message>
        <Message1>string</Message1>
        <Message2>string</Message2>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <HostCode>string</HostCode>
        <HostURL>string</HostURL>
        <ReceiptURL>string</ReceiptURL>
        <GetAVSResult>string</GetAVSResult>
        <GetAVSResultTXT>string</GetAVSResultTXT>
        <GetStreetMatchTXT>string</GetStreetMatchTXT>
        <GetZipMatchTXT>string</GetZipMatchTXT>
        <GetCVResult>string</GetCVResult>
        <GetCVResultTXT>string</GetCVResultTXT>
        <GetGetOrigResult>string</GetGetOrigResult>
        <GetCommercialCard>string</GetCommercialCard>
        <WorkingKey>string</WorkingKey>
        <KeyPointer>string</KeyPointer>
        <ExtData>string</ExtData>
      </ProcessDebitCardResult>
    </ProcessDebitCardResponse>
  </soap:Body>
</soap:Envelope>

SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ProcessDebitCard xmlns="http://TPISoft.com/SmartPayments/">
      <UserName>string</UserName>
      <Password>string</Password>
      <TransType>string</TransType>
      <CardNum>string</CardNum>
      <ExpDate>string</ExpDate>
      <MagData>string</MagData>
      <NameOnCard>string</NameOnCard>
      <Amount>string</Amount>
      <InvNum>string</InvNum>
      <PNRef>string</PNRef>
      <Pin>string</Pin>
      <RegisterNum>string</RegisterNum>
      <SureChargeAmt>string</SureChargeAmt>
      <CashBackAmt>string</CashBackAmt>
      <ExtData>string</ExtData>
    </ProcessDebitCard>
  </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ProcessDebitCardResponse xmlns="http://TPISoft.com/SmartPayments/">
      <ProcessDebitCardResult>
        <Result>int</Result>
        <RespMSG>string</RespMSG>
        <Message>string</Message>
        <Message1>string</Message1>
        <Message2>string</Message2>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <HostCode>string</HostCode>
        <HostURL>string</HostURL>
        <ReceiptURL>string</ReceiptURL>
        <GetAVSResult>string</GetAVSResult>
        <GetAVSResultTXT>string</GetAVSResultTXT>
        <GetStreetMatchTXT>string</GetStreetMatchTXT>
        <GetZipMatchTXT>string</GetZipMatchTXT>
        <GetCVResult>string</GetCVResult>
        <GetCVResultTXT>string</GetCVResultTXT>
        <GetGetOrigResult>string</GetGetOrigResult>
        <GetCommercialCard>string</GetCommercialCard>
        <WorkingKey>string</WorkingKey>
        <KeyPointer>string</KeyPointer>
        <ExtData>string</ExtData>
      </ProcessDebitCardResult>
    </ProcessDebitCardResponse>
  </soap12:Body>
</soap12:Envelope>

HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

POST /ArgoFire/transact.asmx/ProcessDebitCard HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

UserName=string&Password=string&TransType=string&CardNum=string&ExpDate=string&MagData=string&NameOnCard=string&Amount=string&InvNum=string&PNRef=string&Pin=string&RegisterNum=string&SureChargeAmt=string&CashBackAmt=string&ExtData=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns="http://TPISoft.com/SmartPayments/">
  <Result>int</Result>
  <RespMSG>string</RespMSG>
  <Message>string</Message>
  <Message1>string</Message1>
  <Message2>string</Message2>
  <AuthCode>string</AuthCode>
  <PNRef>string</PNRef>
  <HostCode>string</HostCode>
  <HostURL>string</HostURL>
  <ReceiptURL>string</ReceiptURL>
  <GetAVSResult>string</GetAVSResult>
  <GetAVSResultTXT>string</GetAVSResultTXT>
  <GetStreetMatchTXT>string</GetStreetMatchTXT>
  <GetZipMatchTXT>string</GetZipMatchTXT>
  <GetCVResult>string</GetCVResult>
  <GetCVResultTXT>string</GetCVResultTXT>
  <GetGetOrigResult>string</GetGetOrigResult>
  <GetCommercialCard>string</GetCommercialCard>
  <WorkingKey>string</WorkingKey>
  <KeyPointer>string</KeyPointer>
  <ExtData>string</ExtData>
</Response>

Last updated