Recurring


Click here for a complete list of operations.

ManageContract

Parameters
Username(Required) The username of the admin user.
Password(Required) The password of the admin user.
TransType(Required) The type of transaction being performed:
  • ADD
  • UPDATE
  • DELETE
Vendor(Required) The numerical Vendor/Merchant key.
CustomerKey(Required) The numerical Customer key.
ContractKey(Required for TransType UPDATE and DELETE) The numerical Contract key.
PaymentInfoKey(Required for TransType ADD and UPDATE) The numerical Payment Info key.
PaymentType(Required for TransType ADD and UPDATE) Type of payment:
  • CC - Credit Card
  • CK - Check
CustomerID(Required for TransType ADD and UPDATE) A merchant supplied unique identifier for the customer.
CustomerName(Optional) 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.
NightPhone(Optional) The customer's evening phone.
Fax(Optional) The customer's fax.
Mobile(Optional) The customer's mobile phone.
ContractID(Required for TransType ADD and UPDATE) The merchant supplied unique identifier for the contract.
ContractName(Optional) The contract's name.
BillAmt(Required for TransType ADD and UPDATE) Bill amount.
TaxAmt(Optional) Tax amount.
TotalAmt(Required for TransType ADD and UPDATE) BillAmt + TaxAmt = Total amount
StartDate(Required for TransType ADD and UPDATE) The start date of the contract.
EndDate(Required for TransType ADD and UPDATE) 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.
NextBillDt(Required for TransType ADD and UPDATE)
BillingPeriod(Required for TransType ADD and UPDATE) 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 for TransType ADD and UPDATE) 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.
Status(Optional) Status of contract.
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:
TransType:
Vendor:
CustomerKey:
ContractKey:
PaymentInfoKey:
PaymentType:
CustomerID:
CustomerName:
FirstName:
LastName:
Title:
Department:
Street1:
Street2:
Street3:
City:
StateID:
Province:
Zip:
CountryID:
Email:
DayPhone:
NightPhone:
Fax:
Mobile:
ContractID:
ContractName:
BillAmt:
TaxAmt:
TotalAmt:
StartDate:
EndDate:
NextBillDt:
BillingPeriod:
BillingInterval:
MaxFailures:
FailureInterval:
EmailCustomer:
EmailMerchant:
EmailCustomerFailure:
EmailMerchantFailure:
Status:
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/ManageContract"

<?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>
    <ManageContract xmlns="http://www.tpisoft.com/Admin/ws">
      <Username>string</Username>
      <Password>string</Password>
      <TransType>string</TransType>
      <Vendor>string</Vendor>
      <CustomerKey>string</CustomerKey>
      <ContractKey>string</ContractKey>
      <PaymentInfoKey>string</PaymentInfoKey>
      <PaymentType>string</PaymentType>
      <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>
      <Zip>string</Zip>
      <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>
      <NextBillDt>string</NextBillDt>
      <BillingPeriod>string</BillingPeriod>
      <BillingInterval>string</BillingInterval>
      <MaxFailures>string</MaxFailures>
      <FailureInterval>string</FailureInterval>
      <EmailCustomer>string</EmailCustomer>
      <EmailMerchant>string</EmailMerchant>
      <EmailCustomerFailure>string</EmailCustomerFailure>
      <EmailMerchantFailure>string</EmailMerchantFailure>
      <Status>string</Status>
      <ExtData>string</ExtData>
    </ManageContract>
  </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>
    <ManageContractResponse xmlns="http://www.tpisoft.com/Admin/ws">
      <ManageContractResult>
        <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>
      </ManageContractResult>
    </ManageContractResponse>
  </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/ManageContract?Username=string&Password=string&TransType=string&Vendor=string&CustomerKey=string&ContractKey=string&PaymentInfoKey=string&PaymentType=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&Zip=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&NextBillDt=string&BillingPeriod=string&BillingInterval=string&MaxFailures=string&FailureInterval=string&EmailCustomer=string&EmailMerchant=string&EmailCustomerFailure=string&EmailMerchantFailure=string&Status=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/ManageContract HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

Username=string&Password=string&TransType=string&Vendor=string&CustomerKey=string&ContractKey=string&PaymentInfoKey=string&PaymentType=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&Zip=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&NextBillDt=string&BillingPeriod=string&BillingInterval=string&MaxFailures=string&FailureInterval=string&EmailCustomer=string&EmailMerchant=string&EmailCustomerFailure=string&EmailMerchantFailure=string&Status=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>