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.
ParametersUsername | (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 |
(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.
|
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)
|
AccountType | (Required)
|
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.
- Username - The admin user
- Partner - The reseller of the merchant
- Vendor - The merchant key
- CustomerKey - Customer Key
- CcInfoKey - Credit Card Payment Info Key
- CheckInfoKey - Check Payment Info Key
- ContractKey - Contract Key
- code - result code: 0 - success, error otherwise
- error - description of the erorr
- Result - payment transaction result: 0 - approved, decline otherwise
- AuthCode - Authorization code for payment transaction
- PNRef - unique reference number for the payment transaction, returned by the payment server
- Message - description of the payment transaction
Test
To test the operation using the HTTP POST protocol, click the 'Invoke' button.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>