Function: TestPayments
You can use the TestPayments function only when required to test the result of payment instructions (for understanding the required funds). The TestPayments function has exactly the same structure as the ProcessPayments function, except it does not actually create the payment group A group of payment orders/ instructions that the payer submits to Tipalti to execute payments to payees and payments. It only simulates the process to test the result of payment instructions.
The following is a sample SOAP 1.2 request and response. In the request, you need to replace the data types in yellow with actual values.
SOAP 1.2: Request
POST /v14/payerfunctions.asmx HTTP/1.1
Host: api.tipalti.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>
<TestPayments xmlns="http://Tipalti.org/">
<payerName>string</payerName>
<paymentGroupTitle>string</paymentGroupTitle>
<tipaltiPaymentsOrders>
<TipaltiPaymentOrderItem>
<Idap>string</Idap>
<Amount>double</Amount>
<RefCode>string</RefCode>
<EWalletMessage>string</EWalletMessage>
<IgnoreThresholds>boolean</IgnoreThresholds>
<BankingMessage>string</BankingMessage>
<EmailMessage>string</EmailMessage>
<Currency>string</Currency>
<ScheduledDate>dateTime</ScheduledDate>
<IsScheduledVisible>boolean</IsScheduledVisible>
<IgnoreRiskCases>boolean</IgnoreRiskCases>
<CustomFields>
<KeyValuePair>
<Key>string</Key>
<Value>string</Value>
</KeyValuePair>
</CustomFields>
<IgnoreTaxValidation>boolean</IgnoreTaxValidation>
<MaxWithholding>boolean</MaxWithholding>
<IncomeType>string</IncomeType>
<TreatyLimitExceeded>boolean</TreatyLimitExceeded>
<AdditionalWithholding>double</AdditionalWithholding>
<UsSource>double</UsSource>
</TipaltiPaymentOrderItem>
<TipaltiPaymentOrderItem>
<Idap>string</Idap>
<Amount>double</Amount>
<RefCode>string</RefCode>
<EWalletMessage>string</EWalletMessage>
<IgnoreThresholds>boolean</IgnoreThresholds>
<BankingMessage>string</BankingMessage>
<EmailMessage>string</EmailMessage>
<Currency>string</Currency>
<ScheduledDate>dateTime</ScheduledDate>
<IsScheduledVisible>boolean</IsScheduledVisible>
<IgnoreRiskCases>boolean</IgnoreRiskCases>
<CustomFields>
<KeyValuePair>
<Key>string</Key>
<Value>string</Value>
</KeyValuePair>
</CustomFields>
<IgnoreTaxValidation>boolean</IgnoreTaxValidation>
<MaxWithholding>boolean</MaxWithholding>
<IncomeType>string</IncomeType>
<TreatyLimitExceeded>boolean</TreatyLimitExceeded>
<AdditionalWithholding>double</AdditionalWithholding>
<UsSource>double</UsSource>
</TipaltiPaymentOrderItem>
</tipaltiPaymentsOrders>
<timeStamp>double</timeStamp>
<key>string</key>
</TestPayments>
</soap12:Body>
</soap12:Envelope>
SOAP 1.2: Response
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>
<TestPaymentsResponse xmlns="http://Tipalti.org/">
<TestPaymentsResult>
<errorMessage>string</errorMessage>
<errorCode>integer</errorCode>
<linesResults>
<ExpandedLineResult>
<status>string</status>
<paymentOrderStatus>string</paymentOrderStatus>
<message>string</message>
<refCode>string</refCode>
<lineErrorOrWarningType>integer</lineErrorOrWarningType>
</ExpandedLineResult>
<ExpandedLineResult>
<status>string</status>
<paymentOrderStatus>string</paymentOrderStatus>
<message>string</message>
<refCode>string</refCode>
<lineErrorOrWarningType>integer</lineErrorOrWarningType>
</ExpandedLineResult>
</linesResults>
<summary>
<TipaltiProcessPaymentsSummary>
<accountType>integer</accountType>
<accountCurrency>string</accountCurrency>
<fundsRequired>double</fundsRequired>
<outstandingAmount>double</outstandingAmount>
<tipaltiSummaryAmounts>
<TipaltiSummaryAmounts>
<summaryRowCurrency>string</summaryRowCurrency>
<totalAmount>double</totalAmount>
<immediateAmount>double</immediateAmount>
<payableAmount>double</payableAmount>
<payerFees>double</payerFees>
<scheduledAmount>double</scheduledAmount>
<outstandingAmount>double</outstandingAmount>
<withholdingAmount>double</withholdingAmount>
<estimatedProviderFees>double</estimatedProviderFees>
</TipaltiSummaryAmounts>
</tipaltiSummaryAmounts>
</TipaltiProcessPaymentsSummary>
<TipaltiProcessPaymentsSummary>
<accountType>integer</accountType>
<accountCurrency>string</accountCurrency>
<fundsRequired>double</fundsRequired>
<outstandingAmount>double</outstandingAmount>
<tipaltiSummaryAmounts>
<TipaltiSummaryAmounts>
<summaryRowCurrency>string</summaryRowCurrency>
<totalAmount>double</totalAmount>
<immediateAmount>double</immediateAmount>
<payableAmount>double</payableAmount>
<payerFees>double</payerFees>
<scheduledAmount>double</scheduledAmount>
<outstandingAmount>double</outstandingAmount>
<withholdingAmount>double</withholdingAmount>
<estimatedProviderFees>double</estimatedProviderFees>
</TipaltiSummaryAmounts>
</tipaltiSummaryAmounts>
</TipaltiProcessPaymentsSummary>
</summary>
</TestPaymentsResult>
</TestPaymentsResponse>
</soap12:Body>
</soap12:Envelope>
Request parameters
element |
description |
limitation |
Mandatory? |
data type |
---|---|---|---|---|
payerName | The name of the payer, as assigned by Tipalti |
|
Mandatory | string |
paymentGroupTitle | Title of payment group | Optional | string | |
tipaltiPaymentsOrders |
|
Mandatory | Array of TipaltiPayment OrderItem |
|
timeStamp |
Current time (UTC) when the request is sent |
Unix time | Mandatory | double |
key | Encryption key | Mandatory | string |
TipaltiPaymentOrderItem
element |
description |
limitation |
Mandatory? |
data type |
---|---|---|---|---|
Idap | Unique payee identifier (the payee ID) |
|
Mandatory | string |
Amount | The amount to be paid to the payee |
|
Mandatory | double |
RefCode | The reference code for the payment order |
|
Mandatory | string |
EWalletMessage |
|
|
Optional | string |
IgnoreThresholds | If TRUE, the system ignores payment thresholds and executes the payment | Mandatory | boolean | |
BankingMessage |
|
|
Optional | string |
EmailMessage |
|
|
Optional | string |
Currency | The currency of the amount submitted |
|
Optional | string |
ScheduledDate | The date and time the payment is scheduled to be paid |
|
Optional | dateTime |
IsScheduledVisible | Indicates if the payment and scheduled date are to be visible to the payee in the iFrame | Default = null | Optional | boolean |
IgnoreRiskCases |
If TRUE, the system ignores a payee's risk case and executes the payment |
Default = FALSE | Optional | boolean |
CustomFields |
|
|
Optional | Array of KeyValuePair |
IgnoreTaxValidation | If TIN (Tax identification number) validation is enabled and this field is set to "TRUE", the result of the TIN validation is ignored. | Default = null | Optional | boolean |
MaxWithholding |
|
Default = null | Optional | boolean |
IncomeType | If the Tax Withholding module is enabled and there are multiple income types that can be associated with the payment, then you must enter the income type per payment. |
|
Mandatory, if more than one income type is enabled | string |
TreatyLimitExceeded | Indicates that you are aware the country yearly limit has passed for payees who have not signed the Certificate of No U.S. Activities | Default = FALSE | Optional | boolean |
AdditionalWithholding | The additional percentage to be withheld from payments |
|
Optional | double |
UsSource | The percentage of the payment that is US sourced (if value ≠ null) |
|
Optional | double |
KeyValuePair
Element |
description |
Mandatory? |
data type |
---|---|---|---|
Key | Name of field | Optional | string |
Value | Value of field | Optional | string |
Response parameters
element |
description |
data type |
---|---|---|
TestPaymentsResult | Contains the response parameters | TipaltiExpandedProcess PaymentResponse |
TipaltiExpandedProcessPaymentResponse
element |
description |
Limitation |
data type |
---|---|---|---|
errorMessage | A description of the error | See API error codes. | string |
errorCode | The status of the error | See API error codes. | integer |
linesResults |
|
Array of ExpandedLineResult | |
summary | Summary of the payment instructions | Array of TipaltiProcessPaymentsSummary |
ExpandedLineResult
element |
Description |
Limitation |
Data Type |
---|---|---|---|
status | TipaltiLineResultStatus |
Valid values:
|
string |
paymentOrderStatus | The status of the payment order | See Statuses. | string |
message | The payer's EWalletMessage that was attached to the payment |
|
string |
refCode | The reference code for the payment order |
|
string |
lineErrorOrWarningType* | Type of line error or warning | integer | |
* See Payment Error Codes. |
TipaltiProcessPaymentsSummary
element |
description |
limitation |
data type |
---|---|---|---|
accountType | Type of account |
0 = No account* 2 = PayPal 3 = Payoneer 6 = Intercash 7 = Tipalti 9 = Wells Fargo Bank N.A. 10 = Earthport 999 = External |
integer |
accountCurrency | Currency of the account | Length = 3 (per ISO 4217) | string |
fundsRequired |
|
double | |
outstandingAmount | Total amount due | double | |
tipaltiSummaryAmounts |
|
Array of TipaltiSummary Amounts |
|
* For payment instructions that refer to payees without a payment method configured |
TipaltiSummaryAmounts
element |
description |
limitation |
data type |
---|---|---|---|
summaryRowCurrency | Currency of the amounts in the TipaltiProcessPaymentsSummary record | Length = 3 (per ISO 4217) | string |
totalAmount |
|
double | |
immediateAmount |
|
double | |
payableAmount |
|
double | |
payerFees |
|
double | |
scheduledAmount |
|
double | |
outstandingAmount | Total amount due | double | |
withholdingAmount |
|
double | |
estimatedProviderFees |
|
double |