Recurring


Click here for a complete list of operations.

AddRecurringCheck

Add a customer, a contract and a credit card payment method all in one call. All parameters marked as required must be supplied. Optional parameters can be left blank and the default value will be used. Default value are empty string for string type and 0 for integer type.

Parameters
Username(Required) The username of the admin user.
Password(Required) The password of the admin user.
Vendor(Required) The numerical Vendor/Merchant key.
CustomerID(Required) A merchant supplied unique identifier for the customer.
CustomerName(Required) The customer's name.
FirstName(Optional) The customer's first name.
LastName(Optional) The customer's last name.
Title(Optional) The customer's title.
Department(Optional) The customer's department.
Street1(Optional) The customer's street address 1.
Street2(Optional) The customer's street address 2.
Street3(Optional) The customer's street address 3.
City(Optional) The customer's city.
StateID(Optional) The customer's 2 characters State Code.
Province(Optional) The customer's province if it is outside of the USA.
Zip(Optional) The customer's zip code if in USA, postal code if outside of USA.
CountryID(Optional) The customer's 3 characters country code. e.g. USA, CAN
Email(Optional) The customer's email address.
DayPhone(Optional) The customer's day phone.
Fax(Optional) The customer's fax.
Mobile(Optional) The customer's mobile phone.
ContractID(Required) The merchant supplied unique identifier for the contract.
ContractName(Optional) The contract's name.
BillAmt(Required) Bill amount.
TaxAmt(Optional) Tax amount.
TotalAmt(Required) BillAmt + TaxAmt = Total amount
StartDate(Required) The start date of the contract.
EndDate(Optional) The end date of the contract. If this date is not given, the contract will continue to run until it is manually cancelled or suspended by the system due to failure of payment.
BillingPeriod(Required) Specifies Billing Period Type, used in conjunction with BillingInterval to compute the next bill date.
  • DAY - every x days
  • WEEK - number of times per week
  • MONTH - number of times per month
  • YEAR - number of times per year
BillingInterval(Required) Depending on the BillingPeriod, it means different things. e.g. every x days, number of times per week, number of times per month, number of times per year
MaxFailures(Optional) The number of times the system will retry when a recurring paymnet fails to process before it put the contract in suspend mode.
FailureInterval(Optional) Number of days the system will wait after each retry when the payment fails.
EmailCustomer(Optional) TRUE/FALSE - Whether to email the customer regarding the status of the recurring payment.
EmailMerchant(Optional) TRUE/FALSE - Whether to email the merchant regarding the status of the recurring payment.
EmailCustomerFailure(Optional) TRUE/FALSE - Whether to email the customer when the recurring payment fails.
EmailMerchantFailure(Optional) TRUE/FALSE - Whether to email the merchant when the recurring payment fails.
CheckType(Required)
  • PERSONAL
  • BUSINESS
AccountType(Required)
  • CHECKING
  • SAVINGS
CheckNum(Optional) Check Number
MICR(Optional) The scanned check MICR data.
AccountNum(Required) The account number.
TransitNum(Required) The transit / routing number.
SS(Optional) Social Security number of the check holder.
DOB(Optional) Date of Birth of the check holder.
BranchCity(Optional) The city of the Bank where account is located.
DL(Optional) The driver license of the check holder.
StateCode(Optional) The 2 characters State Code of the driver license of the check holder.
NameOnCheck(Optional) The check holder's name as it is on the check.
ExtData(Optional) Extended Data.

Returns
RecurringResult including keys of the newly added/updated records if the call is successful.

Test

To test the operation using the HTTP POST protocol, click the 'Invoke' button.
Parameter Value
Username:
Password:
Vendor:
CustomerID:
CustomerName:
FirstName:
LastName:
Title:
Department:
Street1:
Street2:
Street3:
City:
StateID:
Province:
PostalCode:
CountryID:
Email:
DayPhone:
NightPhone:
Fax:
Mobile:
ContractID:
ContractName:
BillAmt:
TaxAmt:
TotalAmt:
StartDate:
EndDate:
BillingPeriod:
BillingInterval:
MaxFailures:
FailureInterval:
EmailCustomer:
EmailMerchant:
EmailCustomerFailure:
EmailMerchantFailure:
CheckType:
AccountType:
CheckNum:
MICR:
AccountNum:
TransitNum:
SS:
DOB:
BranchCity:
DL:
StateCode:
NameOnCheck:
ExtData:

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 /admin/ws/recurring.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.tpisoft.com/Admin/ws/AddRecurringCheck"

<?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>
    <AddRecurringCheck xmlns="http://www.tpisoft.com/Admin/ws">
      <Username>string</Username>
      <Password>string</Password>
      <Vendor>string</Vendor>
      <CustomerID>string</CustomerID>
      <CustomerName>string</CustomerName>
      <FirstName>string</FirstName>
      <LastName>string</LastName>
      <Title>string</Title>
      <Department>string</Department>
      <Street1>string</Street1>
      <Street2>string</Street2>
      <Street3>string</Street3>
      <City>string</City>
      <StateID>string</StateID>
      <Province>string</Province>
      <PostalCode>string</PostalCode>
      <CountryID>string</CountryID>
      <Email>string</Email>
      <DayPhone>string</DayPhone>
      <NightPhone>string</NightPhone>
      <Fax>string</Fax>
      <Mobile>string</Mobile>
      <ContractID>string</ContractID>
      <ContractName>string</ContractName>
      <BillAmt>string</BillAmt>
      <TaxAmt>string</TaxAmt>
      <TotalAmt>string</TotalAmt>
      <StartDate>string</StartDate>
      <EndDate>string</EndDate>
      <BillingPeriod>string</BillingPeriod>
      <BillingInterval>string</BillingInterval>
      <MaxFailures>string</MaxFailures>
      <FailureInterval>string</FailureInterval>
      <EmailCustomer>string</EmailCustomer>
      <EmailMerchant>string</EmailMerchant>
      <EmailCustomerFailure>string</EmailCustomerFailure>
      <EmailMerchantFailure>string</EmailMerchantFailure>
      <CheckType>string</CheckType>
      <AccountType>string</AccountType>
      <CheckNum>string</CheckNum>
      <MICR>string</MICR>
      <AccountNum>string</AccountNum>
      <TransitNum>string</TransitNum>
      <SS>string</SS>
      <DOB>string</DOB>
      <BranchCity>string</BranchCity>
      <DL>string</DL>
      <StateCode>string</StateCode>
      <NameOnCheck>string</NameOnCheck>
      <ExtData>string</ExtData>
    </AddRecurringCheck>
  </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>
    <AddRecurringCheckResponse xmlns="http://www.tpisoft.com/Admin/ws">
      <AddRecurringCheckResult>
        <CustomerID>string</CustomerID>
        <ClientSessionID>string</ClientSessionID>
        <CustomerKey>string</CustomerKey>
        <ContractKey>string</ContractKey>
        <CcInfoKey>string</CcInfoKey>
        <CheckInfoKey>string</CheckInfoKey>
        <code>OK or Unknown_Error or Access_Denied or Invalid_Login or Invalid_User_Status or Invalid_User or User_Not_Found or Username_Already_In_Use or Username_Has_Invalid_Characters or Not_Enough_Privilege or Invalid_PartnerID or Invalid_VendorID or Invalid_Argument or Invalid_Record or Transaction_Type_Not_Supported_By_Host or Internal_Error or Invalid_ProcessorID or Processor_Not_Found or InValidPassword</code>
        <error>string</error>
        <Partner>string</Partner>
        <Vendor>string</Vendor>
        <Username>string</Username>
        <Result>string</Result>
        <AuthCode>string</AuthCode>
        <PNRef>string</PNRef>
        <Message>string</Message>
        <Contracts>
          <ContractInfo>
            <Contract_Key>string</Contract_Key>
            <Next_Bill_Date>string</Next_Bill_Date>
          </ContractInfo>
          <ContractInfo>
            <Contract_Key>string</Contract_Key>
            <Next_Bill_Date>string</Next_Bill_Date>
          </ContractInfo>
        </Contracts>
        <ContractTransactions>
          <LastContractTrans>
            <PaymentPref>string</PaymentPref>
            <Contract_Key>string</Contract_Key>
            <Transaction_Date>string</Transaction_Date>
            <Transaction_Amount>string</Transaction_Amount>
            <Convenience_Fee>string</Convenience_Fee>
            <PNRef>string</PNRef>
            <ResultCode>string</ResultCode>
            <ResponseMessage>string</ResponseMessage>
            <AuthCode>string</AuthCode>
          </LastContractTrans>
          <LastContractTrans>
            <PaymentPref>string</PaymentPref>
            <Contract_Key>string</Contract_Key>
            <Transaction_Date>string</Transaction_Date>
            <Transaction_Amount>string</Transaction_Amount>
            <Convenience_Fee>string</Convenience_Fee>
            <PNRef>string</PNRef>
            <ResultCode>string</ResultCode>
            <ResponseMessage>string</ResponseMessage>
            <AuthCode>string</AuthCode>
          </LastContractTrans>
        </ContractTransactions>
        <AccountNumber>string</AccountNumber>
      </AddRecurringCheckResult>
    </AddRecurringCheckResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

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

GET /admin/ws/recurring.asmx/AddRecurringCheck?Username=string&Password=string&Vendor=string&CustomerID=string&CustomerName=string&FirstName=string&LastName=string&Title=string&Department=string&Street1=string&Street2=string&Street3=string&City=string&StateID=string&Province=string&PostalCode=string&CountryID=string&Email=string&DayPhone=string&NightPhone=string&Fax=string&Mobile=string&ContractID=string&ContractName=string&BillAmt=string&TaxAmt=string&TotalAmt=string&StartDate=string&EndDate=string&BillingPeriod=string&BillingInterval=string&MaxFailures=string&FailureInterval=string&EmailCustomer=string&EmailMerchant=string&EmailCustomerFailure=string&EmailMerchantFailure=string&CheckType=string&AccountType=string&CheckNum=string&MICR=string&AccountNum=string&TransitNum=string&SS=string&DOB=string&BranchCity=string&DL=string&StateCode=string&NameOnCheck=string&ExtData=string HTTP/1.1
Host: secure.ftipgw.com
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<RecurringResult xmlns="http://www.tpisoft.com/Admin/ws">
  <CustomerID>string</CustomerID>
  <ClientSessionID>string</ClientSessionID>
  <CustomerKey>string</CustomerKey>
  <ContractKey>string</ContractKey>
  <CcInfoKey>string</CcInfoKey>
  <CheckInfoKey>string</CheckInfoKey>
  <code>OK or Unknown_Error or Access_Denied or Invalid_Login or Invalid_User_Status or Invalid_User or User_Not_Found or Username_Already_In_Use or Username_Has_Invalid_Characters or Not_Enough_Privilege or Invalid_PartnerID or Invalid_VendorID or Invalid_Argument or Invalid_Record or Transaction_Type_Not_Supported_By_Host or Internal_Error or Invalid_ProcessorID or Processor_Not_Found or InValidPassword</code>
  <error>string</error>
  <Partner>string</Partner>
  <Vendor>string</Vendor>
  <Username>string</Username>
  <Result>string</Result>
  <AuthCode>string</AuthCode>
  <PNRef>string</PNRef>
  <Message>string</Message>
  <Contracts>
    <ContractInfo>
      <Contract_Key>string</Contract_Key>
      <Next_Bill_Date>string</Next_Bill_Date>
    </ContractInfo>
    <ContractInfo>
      <Contract_Key>string</Contract_Key>
      <Next_Bill_Date>string</Next_Bill_Date>
    </ContractInfo>
  </Contracts>
  <ContractTransactions>
    <LastContractTrans>
      <PaymentPref>string</PaymentPref>
      <Contract_Key>string</Contract_Key>
      <Transaction_Date>string</Transaction_Date>
      <Transaction_Amount>string</Transaction_Amount>
      <Convenience_Fee>string</Convenience_Fee>
      <PNRef>string</PNRef>
      <ResultCode>string</ResultCode>
      <ResponseMessage>string</ResponseMessage>
      <AuthCode>string</AuthCode>
    </LastContractTrans>
    <LastContractTrans>
      <PaymentPref>string</PaymentPref>
      <Contract_Key>string</Contract_Key>
      <Transaction_Date>string</Transaction_Date>
      <Transaction_Amount>string</Transaction_Amount>
      <Convenience_Fee>string</Convenience_Fee>
      <PNRef>string</PNRef>
      <ResultCode>string</ResultCode>
      <ResponseMessage>string</ResponseMessage>
      <AuthCode>string</AuthCode>
    </LastContractTrans>
  </ContractTransactions>
  <AccountNumber>string</AccountNumber>
</RecurringResult>

HTTP POST

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

POST /admin/ws/recurring.asmx/AddRecurringCheck HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

Username=string&Password=string&Vendor=string&CustomerID=string&CustomerName=string&FirstName=string&LastName=string&Title=string&Department=string&Street1=string&Street2=string&Street3=string&City=string&StateID=string&Province=string&PostalCode=string&CountryID=string&Email=string&DayPhone=string&NightPhone=string&Fax=string&Mobile=string&ContractID=string&ContractName=string&BillAmt=string&TaxAmt=string&TotalAmt=string&StartDate=string&EndDate=string&BillingPeriod=string&BillingInterval=string&MaxFailures=string&FailureInterval=string&EmailCustomer=string&EmailMerchant=string&EmailCustomerFailure=string&EmailMerchantFailure=string&CheckType=string&AccountType=string&CheckNum=string&MICR=string&AccountNum=string&TransitNum=string&SS=string&DOB=string&BranchCity=string&DL=string&StateCode=string&NameOnCheck=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"?>
<RecurringResult xmlns="http://www.tpisoft.com/Admin/ws">
  <CustomerID>string</CustomerID>
  <ClientSessionID>string</ClientSessionID>
  <CustomerKey>string</CustomerKey>
  <ContractKey>string</ContractKey>
  <CcInfoKey>string</CcInfoKey>
  <CheckInfoKey>string</CheckInfoKey>
  <code>OK or Unknown_Error or Access_Denied or Invalid_Login or Invalid_User_Status or Invalid_User or User_Not_Found or Username_Already_In_Use or Username_Has_Invalid_Characters or Not_Enough_Privilege or Invalid_PartnerID or Invalid_VendorID or Invalid_Argument or Invalid_Record or Transaction_Type_Not_Supported_By_Host or Internal_Error or Invalid_ProcessorID or Processor_Not_Found or InValidPassword</code>
  <error>string</error>
  <Partner>string</Partner>
  <Vendor>string</Vendor>
  <Username>string</Username>
  <Result>string</Result>
  <AuthCode>string</AuthCode>
  <PNRef>string</PNRef>
  <Message>string</Message>
  <Contracts>
    <ContractInfo>
      <Contract_Key>string</Contract_Key>
      <Next_Bill_Date>string</Next_Bill_Date>
    </ContractInfo>
    <ContractInfo>
      <Contract_Key>string</Contract_Key>
      <Next_Bill_Date>string</Next_Bill_Date>
    </ContractInfo>
  </Contracts>
  <ContractTransactions>
    <LastContractTrans>
      <PaymentPref>string</PaymentPref>
      <Contract_Key>string</Contract_Key>
      <Transaction_Date>string</Transaction_Date>
      <Transaction_Amount>string</Transaction_Amount>
      <Convenience_Fee>string</Convenience_Fee>
      <PNRef>string</PNRef>
      <ResultCode>string</ResultCode>
      <ResponseMessage>string</ResponseMessage>
      <AuthCode>string</AuthCode>
    </LastContractTrans>
    <LastContractTrans>
      <PaymentPref>string</PaymentPref>
      <Contract_Key>string</Contract_Key>
      <Transaction_Date>string</Transaction_Date>
      <Transaction_Amount>string</Transaction_Amount>
      <Convenience_Fee>string</Convenience_Fee>
      <PNRef>string</PNRef>
      <ResultCode>string</ResultCode>
      <ResponseMessage>string</ResponseMessage>
      <AuthCode>string</AuthCode>
    </LastContractTrans>
  </ContractTransactions>
  <AccountNumber>string</AccountNumber>
</RecurringResult>