User Tools

Site Tools


uwcfsaccount

Description of the UWCFSAccount API.

Web service address

Test web service address (for testing purposes) https://testapi.moneypolo.com:26443/UWCFSAccount.asmx

Real web service address https://api.moneypolo.com:26442/UWCFSAccount.asmx

1. Merchant account can be opened by using method UWCFS_OpenAccount (If merchant does not have an account):

  • If merchant has clients and wants to send money transfer on behalf of the client - merchant must open one account for each client;
  • Method for checking free account by email UWCFS_CheckRegistration.

2. Call methods:

  • Each method can be called by merchant account - every operation will be executed on merchant’s account;
  • Methods can be called by client’s account - every operation will be execute on client’s account.

3. For each operation account must be verified.

4. You have to upload documents for verifications (by http://wiki.moneypolo.com/doku.php/uwcfsdocumentloader) after the account has been opened.

5. Each method has description, request parameters, response parameteres, key, code example.

6. Methods for inward money transfer:

7. Methods for outward money transfer:

  • UWCFSSendWireTransfer (from client or merchant account);
  • SendWireTransferBatch for many transfers in one file;
  • UWCFSLoadAccount (from merchant account to client account, previously merchant need to open account for client);
  • InternalPayment (from merchant to any moneypolo client);
  • UWCFSCheckTransferStatus (method for check transfer status);
  • UWCFSCalculateTariff (method for calculate tariff).

8. Currency exchange: UWCFSCurrencyExchange_Transaction, UWCFSCurrencyExchange_Calculate.

9. Get information from account: UWCFS_GetAccountBalances, UWCFS_GetAccountStatement, UWCFS_GetAccountList, UWCFSCheckTransferStatus, UWCFS_CheckRegistration, CheckWireTransferBatch, GetPersonDocData.

Security

Access to web service can be restricted by IP (on client’s demand) Each transmitted request must be signed with a key. MoneyPolo issues a key for the merchant at the beginning of testing. When switching to the operating mode of the service the key is changed. MoneyPolo will distribute “keys” among their clients, which has to be transmitted to web service in parametrical form.

  1. To work with the API, merchant must assign a unique RUID identifier to each client that will be transmit to the appropriate Web service methods.
  2. When opening the account, receiving a card application, card or transaction status changing, etc., the MoneyPolo sends a letter to the Merchant Client’s e-mail, provided by Client during the account registration.
  3. Each request method should have Signature object:

Signature

Name Type Oblig? Description
MerchantCode string * Merchants's code
Sign string * Signature

Each response method has ErrorResponse object:

Name Type Oblig? Description
ErrorCode int * Error code or 0,- if the answer is without errors.
ErrorMessage string * Error description or empty line,- if the answer is without errors.

Rules for compiling signatures to a Web service request.

Each method has an object sign:

<sign>
  <MerchantCode>string</MerchantCode>
  <Sign>string</Sign>
</sign>
  • For the correct signature generation (Sign) the following is needed:
  • produce a concatenation of data, transferred to the method of service in request object, and Key.
  • apply to the result algorythm SHA512.
  • transfer the result to the upper case.

Statuses for payments

Status Description Only for Method
Archive Payment has been processed CardLoading
In Process Payment is processed
Processed Payment has been processed
Rejected Payment is rejected
Storned Payment is storned

UWCFS_OpenAccount

This method’s purpose is to open account in MoneyPolo. Client’s identification is performed with the help of RUID. It is possible to open only one account per one client.

Input parameters of the method are:

Name Type Required Example Description
AccountType string * Private/Business Opening account type
PersonTitle string * Mr/Ms/Mrs Client's title
PersonFirstName string * John Client's first name
PersonLastName string * Smith Client's last name
PersonEmail string * john.smith@mail.com Email
PersonMobile string * +420111223344 Cell phone number
CompanyName string (* if business account) (.){1,50} Company name
Address1 string (* if business account) (.){1,50} Address Line 1 (Street address, P.O. Box, company name)
Address2 string (* if business account) (.){0,50} Address Line 2 (Apartment, suite, unit, building, floor, etc.)
City string (* if business account) (.){1,50} City
State string (* if business account) (.){0,50} State
Country_Code string (* if business account) Two letters Alpha1 country code Country of Residence code
ZIP string (* if business account) [a-zA-Z0-9/s]{1,50} Zip code
PersonPosition string (* if business account) [a-zA-Z0-9/s]{1,20} Post of an individual in the company which account is being opened
PersonPassword string * (.){1,255} Sign-in password
PersonRUID string * [0-9]{20} Client's RUID
ResidentialCountryCode string * Two letters Alpha1 country code Client's Country of Residence code
ReferralUID string [a-zA-Z0-9]{8}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{12} Doesn't use
ReferralLogID string Doesn't use
TariffGroupCode string For internal use only

Output parameters of the method are:

Name Type Description
AccountID uInt Opened account ID
AccountNumber string Opened account number
AccountName string Opened account name
AccountType string Opened account type
AccountCurrency string Opened account currency USD, EUR, … or Multicurrency
AccountDateOpened string Date of account opening
AccountActive string Indication Active/Inactive
AccountBlockDebit string Indication Debit Blocked/Unblocked
AccountBlockCredit string Indication Credit Blocked/Unblocked
AccountClosed string Indication Open/Close
AccountClosed string Indication Open/Close
RequestAccessID int Reserved

Signature:

AccountType + PersonTitle + PersonFirstName + PersonLastName + PersonEmail + PersonMobile + CompanyName + Address1 + Address2 + City + State + Country_Code + ZIP + PersonPosition + PersonPassword + PersonRUID + ResidentialCountryCode + Key

PHP Example

//1.UWCFS_OpenAccount
 
    $request['AccountType'] = 'Business'; //'Business'/'Private';
    $request['PersonTitle'] = 'Mr';
    $request['PersonFirstName'] = 'Yaroslav';
    $request['PersonLastName'] = 'Solokha';
    $request['PersonEmail'] = 'yaroslav.solokha@gmail.com';
    $request['PersonMobile'] = '+420777445230';
    $request['CompanyName'] = 'moneypolo';
    $request['Address1'] = 'Address Line 1';
    $request['Address2'] = 'Address Line 2';
    $request['City'] = 'City str';
    $request['State'] = 'State str';
    $request['Country_Code'] = 'SV';
    $request['ZIP'] = '11000';
    $request['PersonPosition'] = 'Director';
    $request['PersonPassword'] = 'MfedAR232';
    $request['PersonRUID'] = '101';
    $request['ResidentialCountryCode'] = 'BY';
 
    if($accRequest->Prepare_Data($request))
    {
        $result = $accRequest->Send('UWCFS_OpenAccount');
    }
 
//UWCFS_OpenAccount//

Method’s additional information

  • UWCFS Company sends and e-mail with Greeting Letter to the customer after successful account opening. (see Appendix 2).
  • On Agent’s request UWCFS Company can disable e-mail posting to Customers.
  • During first Customer’s log-in to the account management system (https://secure.uwcfs.com), he is forced to change his password as it was posted via e-mail abroach.

Errors

ID
-101 Invalid AccountType
-102 Invalid PersonTitle
-103 Invalid PersonFirstName
-104 Invalid PersonLastName
-105 Invalid PersonEmail
-106 Invalid PersonMobile
-107 Invalid CompanyName
-108 Invalid Address1
-109 Invalid Address2
-110 Invalid City
-111 Invalid State
-112 Invalid Country_Code
-113 Invalid ZIP
-114 Invalid PersonPosition
-115 Invalid PersonPassword
-116 Invalid PersonRUID
-117 Invalid ResidentialCountryCode
-118 Invalid ReferralUID
-119 Invalid ReferralLogID

UWCFS_GetAccountBalances

This method purpose is to receive MoneyPolo account balance.

Input parameters of the method are:

Name Type Required Example Description
PersonAccountID uInt * 132 Client’s MoneyPolo account ID
PersonRUID uInt * 123456 Client's RUID

Output parameters of the method are:

Name Type Description
RequestInfo list of objects See object AccountPerson.
Balances list of objects See object Balance.

Balance object

Name Type
Currency string
Amount decimal
PendingAmount string
HoldAmount decimal

Signature:

PersonAccountID + PersonRUID + Key

PHP Example

//2.UWCFS_GetAccountBalances
 
    $request['PersonAccountID'] = 13801;
    $request['PersonRUID'] = '11422';
    if($accRequest->Prepare_Data($request))
    {
        $result = $accRequest->Send('UWCFS_GetAccountBalances');
    }
 
//UWCFS_GetAccountBalances//

UWCFS_GetAccountStatement

This method purpose is to receive MoneyPolo account statement.

Input parameters of the method are:

Name Type Required Example Description
AccountPersonRequest object * See object AccountPerson
DateBeg string * 2000-01-01 From date
DateEnd string * 2020-01-01 To date

Output parameters of the method are:

Name Type Description
UWCFS_GetAccountStatementResult.RequestInfo object See object RequestInfo
UWCFS_GetAccountStatementResult.Statements object See object Statements

Statements object

Name Type
UWCFSCurrencyStatement See object UWCFSCurrencyStatement

UWCFSCurrencyStatement object

Name Type Description
DateBeg string From date
DateEnd string To date
Currency string Currency
InBalance decimal Balance at beginnig of period
InBalanceBC decimal Balance at beginnig of period in the base currency (GBP)
OutBalance decimal Balance at end of period
OutBalanceBC decimal Balance at end of period in the base currency (GBP)
TODebit decimal Number of transactions (-)
TODebitBC decimal Number of transactions in the base currency (GBP) (-)
TOCredit decimal Number of transactions (+)
TOCreditBC decimal Number of transactions in the base currency (GBP) (+)
TransactionDetails object See object TransactionDetails

TransactionDetails object

Name Type Description
UWCFSTransactionDetails list of objects See object UWCFSTransactionDetails

UWCFSTransactionDetails object

Name Type Description
Date string Transaction date
Amount decimal Transaction amount
AmountBC decimal Transaction amount for base currency (GBP)
DocumentID uInt32 Transaction ID
MerchantDocumentID string Transaction ID by Merchant
ReferencedDocumentID string
Info string Info about transaction
Reference string
SRC string See object Operation types
Beneficiary string

Signature:

AccountPersonRequest.PersonAccountID + AccountPersonRequest.PersonRUID + DateBeg + DateEnd + Key

PHP Example

//3.UWCFS_GetAccountStatement
 
    $request['AccountPersonRequest']['PersonAccountID'] = 13801;
    $request['AccountPersonRequest']['PersonRUID'] = '11422';
    $request['DateBeg'] = '2000-01-01';
    $request['DateEnd'] = '2020-01-01';
    if($accRequest->Prepare_Data($request))
    {
        $result = $accRequest->Send('UWCFS_GetAccountStatement');
    }
 
//UWCFS_GetAccountStatement//

UWCFS_GetAccountList

This method purpose is to receive MoneyPolo account list.

Input parameters of the method are:

Name Type Required Example Description
PersonRUID string * 12345 Client's RUID

Output parameters of the method are:

Name Type Description
UWCFSAccountInforamationandStatus list of objects See object UWCFSAccountInforamationandStatus

UWCFSAccountInforamationandStatus object

Name Type Description
AccountID string ID
AccountNumber decimal Number
AccountName decimal Name/Corporate name
AccountType uInt32 Corporate account/personal account
AccountCurrency string Currency
AccountDateOpened string 12/8/2014 12:50:29 PM
AccountActive string true, false
AccountBlockDebit string true, false
AccountBlockCredit string true, false
AccountClosed string true, false
TariffGroupCode string Client tariff category

Signature:

PersonRUID + Key

PHP Example

//4.UWCFS_GetAccountList
 
    $request['PersonRUID'] = '126';
    if($accRequest->Prepare_Data($request))
    {    
        $result = $accRequest->Send('UWCFS_GetAccountList');
    }
 
//UWCFS_GetAccountList//

UWCFSSendEmoney

This method purpose is to send E-money.

Input parameters of the method are:

Name Type Required Example Description
Amount Decimal * 200.00 Amount
DocumentID String * 1 Identifier of MoneyPolo operation
AccountPerson 1 object * See object AccountPerson
EMoneyCode String * QW Code
Currency String * USD Currency
BeneficiaryAccount String * 12345 Beneficiary account (* if provided for BC transaction, will be taken as username and only this user can apply the code)
Details String * details Details
AmountAvailable String * 1, 0
BeneficiaryFirstName String * test BeneficiaryFirstName
BeneficiaryLastName String * test BeneficiaryLastName
BeneficiaryBirthDate String * 1990-06-06 BeneficiaryBirthDate
PurposeOfTransfer String * test PurposeOfTransfer
AutoPayment string(1) - 0/1 1 or 0. Payment will be done automatically (1) or not (0)2
ProtectionCode String - optional. WM protection code. Required to be at least 5 characters long if provided.
ProtectionPeriod String - 15 optional. WM protection period. if ProtectionCode is not empty, period must be > 0! Maximum value is 250, if bigger value is passed, protection period will be maximum possible = 250!

* 1 Use only merchant's AccountID and RUID;

* 2 Payments are carried out automatically 24/7. For automatic payments an increased fee is charged-off. The MoneyPolo establishes limits for automatically carried out payments. Information on these limits can be acquired from the MoneyPolo technical;

Output parameters of the method are:

Name Type Description
DocumentID String Identifier of MoneyPolo operation
Status String Status of MoneyPolo operation

Signature:

Amount + DocumentID + AccountPerson.PersonAccountID + AccountPerson.PersonRUID + EMoneyCode + Currency + BeneficiaryAccount + Details + AmountAvailable + BeneficiaryFirstName + BeneficiaryLastName + BeneficiaryBirthDate + PurposeOfTransfer + AutoPayment + ProtectionCode + ProtectionPeriod + Key

PHP Example

//5.UWCFSSendEmoney
 
    $request['Amount'] = '200.00';
    $request['AccountPerson']['PersonAccountID'] = '13801';
    $request['AccountPerson']['PersonRUID'] = '11422';
    $request['EMoneyCode'] = 'QW';
    $request['Currency'] = 'USD';
    $request['BeneficiaryAccount'] = '123456789';
    $request['Details'] = 'testamount';
    $request['AmountAvailable'] = 0;
    $request['BeneficiaryFirstName'] = 'Andrew';
    $request['BeneficiaryLastName'] = 'Black';
    $request['BeneficiaryBirthDate'] = '1990-06-06';
    $request['PurposeOfTransfer'] = 'BlaBlaBla'; 
    $request['AutoPayment'] = ''; 
    $request['ProtectionCode'] = ''; 
    if($accRequest->PrepareDataManual($request, $request['Amount'].$request['DocumentID'].$request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID'].$request['EMoneyCode'].$request['Currency'].$request['BeneficiaryAccount'].$request['Details'].$request['AmountAvailable'].$request['BeneficiaryFirstName'].$request['BeneficiaryLastName'].$request['BeneficiaryBirthDate'].$request['PurposeOfTransfer'].$request['AutoPayment'].$request['ProtectionCode']))
    {    
        $result = $accRequest->Send('UWCFSSendEmoney');
    }
 
//UWCFSSendEmoney//

Errors

ID Description
-1700 Skrill (Moneybookers) currency is temporary unavailable
-1701 Invalid Amount format
-1702 Invalid PersonRUID format
-1703 Invalid PersonAccountID format
-1704 Invalid EMoneyCode format
-1705 Invalid Currency format
-1706 Invalid BeneficiaryAccount format
-1707 Invalid Details format
-1708 Invalid AmountAvailable format
-1709 Invalid BeneficiaryFirstName format
-1710 Invalid BeneficiaryLastName format
-1711 Invalid BeneficiaryBirthDate format
-1712 Invalid PurposeOfTransfer format

UWCFSCalculateTariff

This method purpose is to calculate tariff.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object AccountPerson
EMoneyCode String * QW Code
Currency String * USD Currency
Amount Decimal * 200.00 Amount

Output parameters of the method are:

Name Type Description
TariffAmount Decimal Fee
Currency String Currency

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + EMoneyCode + Currency + Amount + Key

PHP Example

//6.UWCFSCalculateTariff
 
    $request['AccountPerson']['PersonAccountID'] = 13801;
    $request['AccountPerson']['PersonRUID'] = '11422';
    $request['EMoneyCode'] = 'QW';
    $request['Currency'] = 'USD';
    $request['Amount'] = '200.00';
 
    if($accRequest->PrepareDataManual($request, $request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID'].$request['EMoneyCode'].$request['Currency'].$request['Amount']))
    {    
        $result = $accRequest->Send('UWCFSCalculateTariff');
    }
 
//UWCFSCalculateTariff//

UWCFSLoadAccount

This method purpose is to load account.

Input parameters of the method are:

Name Type Required Example Description
Amount Decimal * 200.00 Amount
DocumentID String * 123 Identifier of Merchant operation
AccountPerson object * See object AccountPerson
Currency String * USD Currency
Details String * test Details

Output parameters of the method are:

Name Type Description
DocumentID String Identifier of MoneyPolo operation
Status String Status of MoneyPolo operation

Signature:

Amount + DocumentID + AccountPerson.PersonAccountID + AccountPerson.PersonRUID + Currency + Details + Key

PHP Example

//7.UWCFSLoadAccount
 
    $request['Amount'] = '200.00';
    $request['DocumentID'] = '6';
    $request['AccountPerson']['PersonAccountID'] = 13801;
    $request['AccountPerson']['PersonRUID'] = '11422';
    $request['Currency'] = 'USD';
    $request['Details'] = 'testamount';
 
    if($accRequest->PrepareDataManual($request, $request['Amount'].$request['DocumentID'].$request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID'].$request['Currency'].$request['Details']))
    {    
        $result = $accRequest->Send('UWCFSLoadAccount');
    }
 
//UWCFSLoadAccount//

UWCFSCheckTransferStatus

This method purpose is to check transfer status.

Input parameters of the method are:

Name Type Required Example Description
DocumentID String * 123 Identifier of MoneyPolo operation

Output parameters of the method are:

Name Type Description
Status String Status of MoneyPolo operation
RemoteID String Remote ID of partner system, if provided, default = empty

Signature:

DocumentID + Key

PHP Example

//8.UWCFSCheckTransferStatus
 
    $request['DocumentID'] = '123456';
 
    if($accRequest->PrepareDataManual($request, $request['DocumentID']))
    {    
        $result = $accRequest->Send('UWCFSCheckTransferStatus');
    }
 
//UWCFSCheckTransferStatus//

UWCFS_CheckRegistration

This method’s purpose is to check whether the given e-mail has already been registered in MoneyPolo.

Input parameters of the method are:

Name Type Required Example Description
Email string * fname.lname@gmail.com Client's Email address

Output parameters of the method are:

Name Type Description
AlreadyRegistered string 0 - no / 1 - yes
AccountAttachmentPossible string 0 - no / 1 - yes

Signature:

Email + Key

PHP Example

//9.UWCFS_CheckRegistration
 
    $request['Email'] = 'yaroslav.solokha@gmail.com';
    if($accRequest->Prepare_Data($request))
    {
        $result = $accRequest->Send('UWCFS_CheckRegistration');
    }
 
//UWCFS_CheckRegistration//

UWCFSCurrencyExchange_Transaction

This method purpose is to exchange currency.

Input parameters of the method are:

Name Type Required Example Description
Amount Decimal * 10.00 Amount
DocumentID String * 123 Identifier of Merchant operation
AccountPerson object * See object AccountPerson
OperationCode String * BUY/SELL Operation code
FromCurrencyCode String * USD From Currency
ToCurrencyCode String * EUR To Currency
Details String * TEST Details
Priority String * Express Express, SWIFT, VIP
RateCalculationID String * 1 Doesn't use

Output parameters of the method are:

Name Type Description
DocumentID String Identifier of MoneyPolo operation
UserRate String Rate

Signature:

Amount + DocumentID + AccountPerson.PersonAccountID + AccountPerson.PersonRUID + OperationCode + FromCurrencyCode + ToCurrencyCode + Details + Priority + RateCalculationID + Key

PHP Example

//10.UWCFSCurrencyExchange_Transaction
 
    $request['Amount'] = '10.00';
    $request['DocumentID'] = '6';
    $request['AccountPerson']['PersonAccountID'] = 13801;
    $request['AccountPerson']['PersonRUID'] = '11422';
    $request['OperationCode'] = 'BUY';
    $request['FromCurrencyCode'] = 'USD';
    $request['ToCurrencyCode'] = 'EUR';
    $request['Details'] = 'Test';
    $request['Priority'] = 'SWIFT';
    $request['RateCalculationID'] = '1';
 
 
    if($accRequest->PrepareDataManual($request, $request['Amount'].$request['DocumentID'].$request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID'].$request['OperationCode'].$request['FromCurrencyCode'].$request['ToCurrencyCode'].$request['Details'].$request['Priority'].$request['RateCalculationID']))
    {    
        $result = $accRequest->Send('UWCFSCurrencyExchange_Transaction');
    }
 
//UWCFSCurrencyExchange_Transaction//

Errors

ID Description
-1200 Invalid OperationCode
-1201 Invalid Amount
-1202 Invalid DocumentID
-1203 Invalid FromCurrencyCode
-1204 Invalid ToCurrencyCode
-1205 Invalid Details
-1206 Invalid Priority

UWCFSCurrencyExchange_Calculate

This method purpose is to exchange currency calculate.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object AccountPerson
Amount Decimal * 10.00 Amount
OperationCode String * BUY/SELL Buy, Sell
FromCurrencyCode String * USD From Currency
ToCurrencyCode String * EUR To Currency
Priority String * ExpressExpress
RateCalculationID String * 1 Doesn't use

Sell 100 EUR You will receive RUB - <Amount>100</Amount> <OperationCode>SELL</OperationCode> <FromCurrencyCode>EUR</FromCurrencyCode> <ToCurrencyCode>RUB</ToCurrencyCode>

Buy 100 EUR You should pay RUB - <Amount>100.00</Amount> <OperationCode>BUY</OperationCode> <FromCurrencyCode>RUB</FromCurrencyCode> <ToCurrencyCode>EUR</ToCurrencyCode>

Output parameters of the method are:

Name Type Description
CrossRate Int Rate
Amount Decimal Amount
Currency String Currency
RateCalculationID Int Id

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + Amount + OperationCode + FromCurrencyCode + ToCurrencyCode + Priority + RateCalculationID + Key

PHP Example

//11.UWCFSCurrencyExchange_Calculate
 
    $request['AccountPerson']['PersonAccountID'] = 13801;
    $request['AccountPerson']['PersonRUID'] = '11422';
    $request['Amount'] = '10.00';
    $request['OperationCode'] = 'BUY';
    $request['FromCurrencyCode'] = 'USD';
    $request['ToCurrencyCode'] = 'EUR';
    $request['Priority'] = 'Express';
    $request['RateCalculationID'] = '1';
 
    if($accRequest->PrepareDataManual($request, $request['DocumentID'].$request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID'].$request['Amount'].$request['OperationCode'].$request['FromCurrencyCode'].$request['ToCurrencyCode'].$request['Priority'].$request['RateCalculationID']))
    {    
        $result = $accRequest->Send('UWCFSCurrencyExchange_Calculate');
    }
 
//UWCFSCurrencyExchange_Calculate//

Errors

see

UWCFSSendWireTransfer

This method purpose is to execute bank transfers from client’s accounts. Client is identified with the help of RUID and AccountID assigned by the partners.

Input parameters of the method are:

Name Type Oblig? Example Description
Amount money * 10.05 Ammount
DocumentID string * [0-9]{1,11}$ Partner’s document ID
AccountPerson object * See object AccountPerson
ValueDate string * YYYY-MM-DD Date of payment processing and transfering
ChargesCode string * [a-zA-Z]{3}$ Commission payment type, see ChargesCode
CurrencyCode string * [a-zA-Z]{3}$ Payment currency code
PriorityCode string * [a-zA-Z]{5,7}$ Payment priority type, see PriorityCode.
Beneficiary object * See object Beneficiary
BeneficiaryBank object * See object Bank
CorrespondentBank object See object CorrespondentBank
Details string * [a-zA-Z0-9\s\/\.\,\-\@\$\%\&\(\)\*\+]{0,140}$ Payment details 1
SWIFTConfirmation string * 0/1 Whether the SWIFT confirmation is required 2
SWIFTConfirmationEmail string [A-Za-z0-9_\-\.\@]{1,100}$ E-mail to which SWIFT confirmation must be sent 3
AmountAvailable string * 0/1 Flag defining who to cover payment expenses(client/partner)
BankConfirmation string * 0/1 Whether the Bank confirmation is required
BankConfirmationEmail string [A-Za-z0-9_\-\.\@]{1,100}$ E-mail to which Bank confirmation must be sent
TariffGroup string BTC/EX/FX Fee category, available for the selected Merchants only, see TariffGroup

AccountPerson object

Name Type Required Example Description
PersonAccountID int * 1235 Client’s MoneyPolo account ID
PersonRUID string * “4567” Client’s RUID

Beneficiary

Name Type Oblig Example Description
AccountNumber string * [0-9a-zA-Z]{1,35}$ Recipient account number
Name string * [a-zA-Z0-9\s\.\,\(\)\-\'\`]{1,35}$ Recipient name
BeneficiaryAddress object * Recipient address see Object Address
INNCode string * [0-9]{12}$ INN code 4
BICCode string * [0-9]{9}$ BIC code 4
CorrAccount string * [0-9]{20}$ Correspondent account number 4
PaymentType string * [0-9]{5}$ Payment operation type 4

Bank

Name Type Oblig Example Description
BankCodeType string * [a-zA-Z]{3,5}$ Bank code type 5, see BankCodeType
BankCode string * [a-zA-Z0-9]{1,15}$ Local bank code 5
BankName string * [a-zA-Z0-9\s\.\,\-\(\)]{1,35}$ Bank name
BankAddress object * Bank address, see Object Address
OtherInfo string [a-zA-Z0-9\s\.\,\-\(\)]{1,35}$ Other bank information

CorrespondentBank

Name Type Oblig Example Description
BankAccount string * [0-9a-zA-Z]{1,35}$ Bank account number
CorrespondentBankDetails object * See object Bank

Address

Name Type Oblig Example Description
AddressLine1 string * [a-zA-Z0-9\s\/\.\,\-\#\@\$\%\&\(\)\*\+\;\:]{1,35}$ Address Line 1 (Street address, P.O. Box, company name)
AddressLine2 string [a-zA-Z0-9\s\/\.\,\-\#\@\$\%\&\(\)\*\+\;\:]{1,35}$ Address Line 2 (Apartment, suite, unit, building, floor, etc.)
City string * [a-zA-Z0-9\s\/\-]{1,50}$ City
State string [a-zA-Z0-9\s\/\-]{1,50}$ State/region
CountryCode string * [a-zA-Z]{2}$ Two letters Alpha1 country code
PostalCode string * [a-zA-Z0-9\s\/]{1,12}$ Postal code

ChargesCode

  • OUR – commission is paid by transmitter;
  • BEN – commission is paid by recipient;
  • SHA – commission is divided between transmitter and recipient;

PriorityCode

  • SWIFT – The transfer will be sent on the same day, the recipient will receive money on the same day or the next day latest, depends on recipient’s bank;
  • EXPRESS – The transfer will be sent on the same day, the recipient will receive money in 2-5 days from transfer date.

BankCodeType

  • SWIFT SWIFT Bank Code
  • BSB Australian Bank State Branch
  • BLZ Austrian Bankleitzahl
  • BEL Belgian Bank Code
  • BRL Brazilian Bank Code
  • CHIPS CHIPS Participant Identifier
  • CHUID CHIPS Universal Identifier
  • CAN Canadian Sortcode
  • CZE Czech Bank Code
  • DNK Danish Bank Code
  • FIN Finnish Bank Code
  • FRA French Bank Code
  • DEU German Bank Code
  • HUN Hungarian Bank Code
  • IRL Irish Bank Code
  • ITA Italian Bank Code
  • NOR Norwegian Bank Code
  • OTH Other Net Clearing Codes
  • POL Polish Bank Code
  • PRT Portuguese Bank Code
  • ESP Spanish Domestic Interbank Code
  • SWE Swedish Bank Clearing Nr.
  • SWZ Swiss Bank Clearing Code
  • SWZP Swiss Postbank Clearing Code
  • TUR Turkish Bank Code
  • SORT UK Domestic Sortcode
  • ABA US ABA Fedwire
  • UKR Ukrainian Bank Code

TariffGroup

  • BTC – For the payments associated with Bitcoin;
  • EX – For the payments associated with Exchange;
  • FX – For the payments associated with Forex;

Rules and fees you can inquire in the MoneyPolo Financial Dept.

  • 1 Payment details length depends on account name in MoneyPolo because structure “IN ORDER OF 9311.X <MoneyPolo Account name> DATE dd.mm.yyyy” is automatically substituted;
  • 2 The service is paid, confirmation payment is counted under current MoneyPolo tariffs;
  • 3 If email is not stated, confirmation letter will be sent to current client’s email stated in MoneyPolo;
  • 4 Following fields are obligatory on for payments in Russian Rubles;
  • 5 Either bank SWIFT code or local type and bank code should be stated.

Output parameters of the method are:

Name Type Description
DocumentID uint Identifier of MoneyPolo operation
Status string Status of MoneyPolo operation

Signature

Amount + DocumentID + AccountPerson.PersonAccountID + AccountPerson.PersonRUID + ValueDate + ChargesCode + CurrencyCode + PriorityCode + Beneficiary + BeneficiaryBank + CorrespondentBank + Details + SWIFTConfirmation + SWIFTConfirmationEmail + AmountAvailable + BankConfirmation + BankConfirmationEmail + Key

PHP Example

//12.UWCFSSendWireTransfer
 
    $request['Amount'] = 10;
    $request['DocumentID'] = 1;
 
    $request['AccountPerson']['PersonAccountID'] = '13801';
    $request['AccountPerson']['PersonRUID'] = '11422';
 
    $request['ValueDate'] = '2014-12-12';
    $request['ChargesCode'] = 'OUR';
    $request['CurrencyCode'] = 'USD';
    $request['PriorityCode'] = 'SWIFT';
 
    $request['Beneficiary']['AccountNumber'] = '1122334455';
    $request['Beneficiary']['Name'] = 'BeneficiaryName';
    $request['Beneficiary']['BeneficiaryAddress']['AddressLine1'] = 'BenAddressLine1';
    $request['Beneficiary']['BeneficiaryAddress']['AddressLine2'] = 'BenAddressLine2';
    $request['Beneficiary']['BeneficiaryAddress']['City'] = 'BenCity';
    $request['Beneficiary']['BeneficiaryAddress']['State'] = 'BenState';
    $request['Beneficiary']['BeneficiaryAddress']['CountryCode'] = 'CZ';
    $request['Beneficiary']['BeneficiaryAddress']['PostalCode'] = '10900';
    $request['Beneficiary']['INNCode'] = '';
    $request['Beneficiary']['BICCode'] = '';
    $request['Beneficiary']['CorrAccount'] = '';
    $request['Beneficiary']['PaymentType'] = '';
 
    $request['BeneficiaryBank']['BankCodeType'] = 'SWIFT';
    $request['BeneficiaryBank']['BankCode'] = 'CODE';
    $request['BeneficiaryBank']['BankName'] = 'BenBankName';
    $request['BeneficiaryBank']['BankAddress']['AddressLine1'] = 'BenBankAddressLine1';
    $request['BeneficiaryBank']['BankAddress']['AddressLine2'] = 'BenBankAddressLine2';
    $request['BeneficiaryBank']['BankAddress']['City'] = 'BenBankCity';
    $request['BeneficiaryBank']['BankAddress']['State'] = 'BenBankState';
    $request['BeneficiaryBank']['BankAddress']['CountryCode'] = 'CZ';
    $request['BeneficiaryBank']['BankAddress']['PostalCode'] = 'BenBankPostalCode';
    $request['BeneficiaryBank']['OtherInfo'] = 'BenBankOtherInfo';
 
    $request['CorrespondentBank']['BankAccount'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankCodeType'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankCode'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankName'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['AddressLine1'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['AddressLine2'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['City'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['State'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['CountryCode'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['PostalCode'] = '';
    $request['CorrespondentBank']['CorrespondentBankDetails']['OtherInfo'] = '';
 
    $request['Details'] = 'Details';
    $request['SWIFTConfirmation'] = '0';
    $request['SWIFTConfirmationEmail'] = '';             
    $request['AmountAvailable'] = '0';
    $request['BankConfirmation'] = '';
    $request['BankConfirmationEmail'] = '';
    $request['TariffGroup'] = '';
 
    if($accRequest->PrepareDataManual($request, 
            $request['Amount'].$request['DocumentID'].$request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID']
            .$request['ValueDate'].$request['ChargesCode'].$request['CurrencyCode'].$request['PriorityCode'].$request['Beneficiary']['AccountNumber']
            .$request['Beneficiary']['Name'].$request['Beneficiary']['BeneficiaryAddress']['AddressLine1'].$request['Beneficiary']['BeneficiaryAddress']['AddressLine2']
            .$request['Beneficiary']['BeneficiaryAddress']['City'].$request['Beneficiary']['BeneficiaryAddress']['State'].$request['Beneficiary']['BeneficiaryAddress']['CountryCode']
            .$request['Beneficiary']['BeneficiaryAddress']['PostalCode'].$request['Beneficiary']['INNCode'].$request['Beneficiary']['BICCode']
            .$request['Beneficiary']['CorrAccount'].$request['Beneficiary']['PaymentType'].$request['BeneficiaryBank']['BankCodeType'].$request['BeneficiaryBank']['BankCode']
            .$request['BeneficiaryBank']['BankName'].$request['BeneficiaryBank']['BankAddress']['AddressLine1'].$request['BeneficiaryBank']['BankAddress']['AddressLine2']
            .$request['BeneficiaryBank']['BankAddress']['City'].$request['BeneficiaryBank']['BankAddress']['State'].$request['BeneficiaryBank']['BankAddress']['CountryCode']
            .$request['BeneficiaryBank']['BankAddress']['PostalCode'].$request['BeneficiaryBank']['OtherInfo'].$request['CorrespondentBank']['BankAccount']
            .$request['CorrespondentBank']['CorrespondentBankDetails']['BankCodeType'].$request['CorrespondentBank']['CorrespondentBankDetails']['BankCode']
            .$request['CorrespondentBank']['CorrespondentBankDetails']['BankName']
            .$request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['AddressLine1'].$request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['AddressLine2']
            .$request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['City'].$request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['State']
            .$request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['CountryCode'].$request['CorrespondentBank']['CorrespondentBankDetails']['BankAddress']['PostalCode']
            .$request['CorrespondentBank']['CorrespondentBankDetails']['OtherInfo'].$request['Details'].$request['SWIFTConfirmation'].$request['SWIFTConfirmationEmail']
            .$request['AmountAvailable'].$request['BankConfirmation'].$request['BankConfirmationEmail'].$request['TariffGroup']
    ))
    {
        $result = $accRequest->Send('UWCFSSendWireTransfer');
    }
 
//UWCFSSendWireTransfer//

Errors

ID Description
-270 Invalid Date
-1201 Invalid Amount
-1202 Invalid DocumentID
-1205 Invalid Details
-1400 Invalid Charges Code
-1401 Invalid Priority Code
-1402 Invalid Beneficiary Account Number
-1403 Invalid Beneficiary Name
-1404 Invalid Beneficiary AddressLine1(Street, house num., PO BOX)
-1405 Invalid Beneficiary AddressLine2
-1406 Invalid Beneficiary City
-1407 Invalid Beneficiary State
-1408 Invalid Beneficiary Country Code
-1409 Invalid Beneficiary PostalCode
-1410 Invalid Beneficiary INNCode
-1411 Invalid Beneficiary BICCode
-1412 Invalid Beneficiary Correspondent Account
-1413 Invalid Beneficiary Payment Type
-1414 Invalid Beneficiary Bank Code Type
-1415 Invalid Beneficiary Bank Code
-1416 Invalid Beneficiary Bank SWIFT Code
-1417 Field Beneficiary Bank SWIFT Code or Bank Code is required
-1418 Invalid Beneficiary Bank Name
-1419 Invalid Beneficiary Bank Other Info
-1420 Invalid Beneficiary Bank AddressLine1(Street, house num., PO BOX)
-1421 Invalid Beneficiary Bank AddressLine2
-1422 Invalid Beneficiary Bank City
-1423 Invalid Beneficiary Bank State
-1424 Invalid Beneficiary Bank Country Code
-1425 Invalid Beneficiary Bank PostalCode
-1426 Invalid Correspondent Bank Code Type
-1427 Invalid Correspondent Bank Code
-1428 Invalid Correspondent Bank SWIFT Code
-1429 Field Beneficiary Bank SWIFT Code or Bank Code is required
-1430 Invalid Correspondent Bank Name
-1431 Invalid Correspondent Bank Other Info
-1432 Invalid Correspondent Bank AddressLine1
-1433 Invalid Correspondent Bank AddressLine2
-1434 Invalid Correspondent Bank City
-1435 Invalid Correspondent Bank State
-1436 Invalid Correspondent Bank Country Code
-1437 Invalid Correspondent Bank PostalCode
-1438 Invalid SWIFTConfirmation
-1439 Invalid SWIFTConfirmation Email
-1440 Unable to parse input data
-1441 Person is not Verified
-1442 Available account balance is not enough to make transaction
-1443 This payment must be subject to the shared fee regulation (SHA).
-1444 Invalid Bank country or Bank SWIFT Code. Country in Bank SWIFT Code should be the same as Bank Country.
-1445
-1446 Outward payment order may only be placed in our system on working days.
-1447 Beneficiary fee regulation (BEN) payments should be Express only.
-1448 DB Communication error
-1449 Document with the same DocumentID already exists
-1450 Invalid Currency Code
-1451 Invalid AmountAvailable
-1452 Access Denied
-1453 Invalid PaymentType
-1454 Invalid PaymentTypeCurrency
-1455 Invalid BankConfirmation
-1456 Invalid BankConfirmation Email

CheckWireTransferBatch

This method purpose is to send wire trasfer batch.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object AccountPerson
BatchNumber string * 2 BatchNumber
GUID string * bfa8948f-48ff-4ec9-8d15-f288f44c2757 GUID

Output parameters of the method are:

Name Type Description
SendWireTransferBatch_Response_SingleLine List of objects See object SendWireTransferBatch_Response_SingleLine

SendWireTransferBatch_Response_SingleLine object

Name Type Description
DocumentID uInt Identifier of MoneyPolo operation
Status String Status of MoneyPolo operation
InputRow String Content
ErrorCode uInt Error code
ErrorMessage String Error message

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + BatchNumber + GUID + Key

PHP Example

//14.CheckWireTransferBatch
 
    $request['AccountPerson']['PersonAccountID'] = 1406;
    $request['AccountPerson']['PersonRUID'] = '126';
    $request['BatchNumber'] = '2';
    $request['GUID'] = 'bfa8948f-48ff-4ec9-8d15-f288f44c2757';
 
    if($accRequest->PrepareDataManual($request, $request['AccountPerson']['PersonAccountID'].$request['AccountPerson']['PersonRUID'].$request['BatchNumber'].$request['GUID']))
    {    
        $result = $accRequest->Send('CheckWireTransferBatch');
    }
 
//CheckWireTransferBatch//

Errors

see

ID Description
-316 BatchNumber with the same number already exists
-317 Different BatchNumber values in one batch are not allowed

InternalPayment

The method transfers the funds from the account of the Merchant to the client's account.

Input parameters of the method are:

Name Type Oblig? Example Description
AccountNumber string(20) * 9311.1.000.0000001.5 Receiver's account number
Amount decimal(18,2) * 10.05 Transfer amount
CurrencyCode string(3) * USD Currency code of the transfer
MerchantDocumentID string(20) * [a-zA-Z0-9]{1,20} Identifier of Merchant's operation
Details string(150) [a-zA-Z0-9\s]{0,150} Details of the transfer

Output parameters of the method are:

Name Type Description
DocumentID uint Identifier of MoneyPolo operation

Signature

AccountNumber + Amount + CurrencyCode + MerchantDocumentID + Details + Key

PHP Example

//15.InternalPayment
 
    $request['AccountNumber'] = '9311.1.000.0007480.0';
    $request['Amount'] = 10;
    $request['CurrencyCode'] = 'USD';
    $request['MerchantDocumentID'] = '2';
    $request['Details'] = 'Test internal payment 1';
 
    if($accRequest->Prepare_Data($request))
    {
        $result = $accRequest->Send('InternalPayment');
    }
 
//InternalPayment//
ID Field Description
-1457Amount Data format error
-1458MerchantDocumentID Data format error
-1459CurrencyCode Data format error
-1460AccountNumber Data format error
-1461Details Data format error

GetPersonDocData

This method purpose is to get person data.

Input parameters of the method are:

Name Type Required Example Description
PersonAccountID uInt32 * 123 Client’s MoneyPolo account ID
PersonRUID uInt32 * 123 Client’s RUID

Output parameters of the method are:

Name Type Description
PersonDocData List of objects See object PersonDocData

PersonDocData object

Name Type Description
Type String Type
FieldName String Name
Value String Value

Signature:

PersonAccountID + PersonRUID + Key

PHP Example

//16.GetPersonDocData
 
    $request['PersonAccountID'] = 1406;
    $request['PersonRUID'] = '126';
 
    if($accRequest->PrepareDataManual($request, $request['PersonAccountID'].$request['PersonRUID']))
    {    
        $result = $accRequest->Send('GetPersonDocData');
    }
 
//GetPersonDocData//



ShowClientProfile

This method’s purpose is to show client profile.

Input parameters of the method are:

Name Type Required Description
AccountPerson object*See object MoneyPoloAccountPersonData


Output parameters of the method are:

Name Type Description
ProfileID uInt Profile ID in MoneyPolo
ProfileStatus string Status (Completed or Not)
ClientProfile object See object ClientProfile

MoneyPoloAccountPersonData object

Name Type Required Example Description
PersonAccountID int * 1235 Client’s MoneyPolo account ID
PersonRUID string * “4567” Client’s RUID

ClientProfile object

Name Type Description
QuestionID uInt Question ID
Question string Question
AnswerID uInt Answer ID
Answer string Answer
QuestionCode string Question Code
IsRequired byte Is Answer Required
AnswerOptions string Allowed Answer Options

Signature:

PersonAccountID + PersonRUID + Key

PHP Example

//ShowClientProfile
$request['AccountPerson']['PersonAccountID'] = 12345;
$request['AccountPerson']['PersonRUID'] = '4567';
if($wsRequest->Prepare_Data($request))
{
    $result = $wsRequest->Send('ShowClientProfile');
}



SaveClientProfile

This method’s purpose is to save client profile.

Input parameters of the method are:

Name Type Required Description
AccountPerson object*See object MoneyPoloAccountPersonData
ProfileData string*See object MoneyPoloAccountPersonData

ProfileData - Answers are concatenated into a string in the following format: (<QuestionCode> = <Answer[,Answer1]>;){n} where n - number of answers. A list of questions see in the ShowClientProfile

There are optional questions, they will be filled from documents. There is no need to fill it:
DOB (Date of Birth), RADDL1 (Residential Address line 1), RADDL2 (Residential Address line 2), RCITY (Residential City), RSTATE (Residential State), RPCODE (Residential Postcode), RCOUNTRYCODE (Residential Country Code),
IDTYPE (ID Type), IDNUM (ID Number), IDDOI (ID Date of Issuance), IDDOX (ID Date of Expiry), IDIA (ID Issuing Authority)


Output parameters of the method are:

Name Type Description
ProfileID uInt Profile ID in MoneyPolo

Signature:

PersonAccountID + PersonRUID + ProfileData + Key

PHP Example

//ShowClientProfile
$request['AccountPerson']['PersonAccountID'] = 12345;
$request['AccountPerson']['PersonRUID'] = '4567';
$request['ProfileData'] = 'POB=Vitebsk;COB=BLR;PLANOPER=FX operations,E-wallets;USESERV=Wire,Cards;EMPOS=Employee;EMNAME=TESTName;ANIN=<30.000EUR;INOC=1000;OIN=;SELFEI=Software;SELFET=Other;SENDM=Weekly;MONTHAM=less 5.000EUR;SINTRANMIN=10;SINTRANMAN=1000;GEOIN=CIS,EU;GEOOUT=EU;FAMGOV=NO;CONFIRM=NO;';
if($wsRequest->Prepare_Data($request))
{
    $result = $wsRequest->Send('SaveClientProfile');
}





ShowCompanyProfile

This method’s purpose is to show company profile.

Input parameters of the method are:

Name Type Required Description
AccountPerson object*See object MoneyPoloAccountPersonData


Output parameters of the method are:

Name Type Description
ProfileID uInt Profile ID in MoneyPolo
ProfileStatus string Status (Completed or Not)
ClientProfile object See object ClientProfile

MoneyPoloAccountPersonData object

Name Type Required Example Description
PersonAccountID int * 1235 Client’s MoneyPolo account ID
PersonRUID string * “4567” Client’s RUID

Signature:

PersonAccountID + PersonRUID + Key

PHP Example

//ShowCompanyProfile
$request['AccountPerson']['PersonAccountID'] = 12345;
$request['AccountPerson']['PersonRUID'] = '4567';
if($wsRequest->Prepare_Data($request))
{
    $result = $wsRequest->Send('ShowCompanyProfile');
}



SaveCompanyProfile

This method’s purpose is to save company profile.

Input parameters of the method are:

Name Type Required Description
AccountPerson object*See object MoneyPoloAccountPersonData
ProfileData string*

ProfileData - Answers are concatenated into a string in the following format: (<QuestionCode> = <Answer[,Answer1]>;){n} where n - number of answers. A list of questions see in the ShowCompanyProfile


Output parameters of the method are:

Name Type Description
ProfileID uInt Profile ID in MoneyPolo

Signature:

PersonAccountID + PersonRUID + ProfileData + Key

PHP Example

//SaveCompanyProfile
$request['AccountPerson']['PersonAccountID'] = 11111;
$request['AccountPerson']['PersonRUID'] = '2222';
$request['ProfileData'] = 'COMPNAME=BestCompany ltd.;REGN=1000;VATN=1055;INCORPCOUNT=CZ;LICREQ=NO;ACCUSARES=;BENUSA=;RADD=Czech Republik,Archeologicka 1,10500;PHONE=+420775010203;REPCLPOS=Boss;REPCLHON=Mr;REPCLNAME=Ivan;REPCLSNAME=Smith;REPCLPHONE=+420775010203;REPCLEMAIL=ivan.smith@bestcompany.com;FINCONPOS=Boss;FINCONHON=Mr;FINCONNAME=Ivan;FINCONSNAME=Smith;FINCONPHONE=+420775010203;FINCONEMAIL=ivan.smith@bestcompany.com;AMLCONPOS=Boss;AMLCONHON=Mr;AMLCONNAME=Ivan;AMLCONSNAME=Smith;AMLCONPHONE=+420775010203;AMLCONEMAIL=ivan.smith@bestcompany.com;ITCONPOS=Boss;ITCONHON=Mr;ITCONNAME=Ivan;ITCONSNAME=Smith;ITCONPHONE=+420775010203;ITCONEMAIL=ivan.smith@bestcompany.com;BUSACT=services;WEBSITES=bestcompany.com;TRMARK=bestcompany;EMPLNUM=1 to 15 small;EXPINAREA=< 3 year new;SERVORDCL=Wire transfers;SERVORDMRCH=Wire transfers;PRECARD=Prepaid Cards;INTEGR=API;ACCOPER=EUR;MONTUROVER=10000;SIZEAVGTR=200;SINTR=150;CLNUM=150;OPTYPE=FX operations;DETDESC=Detailed description;INTRDESC=Incoming tr.desc;OUTTRDESC=Outgoing tr. desc;GEOIN=100%EU;GEOOUT=100%EU;MAINPART=Bosses;OTHACC=no;COMTYPE=Ltd;NUMBENTRU=0;NUMLEGENT=0;NUMDEC=0;NUMNOMDIR=0;NUMNOMBEN=0;DMDSEX=male;DMDNAME=Ivan;DMDSNAME=Smith;DMDDOB=1974-02-10;DMDPOB=Vitebsk;DMDID=123456;DMDISSUED=;DMDEXDATE=;DMDADD=;UBTSEX=male;UBTNAME=Ivan;UBTSNAME=Smith;UBTSSHAAMNT=100;UBTDOB=1974-02-10;UBTPOB=Vitebsk;UBTIDT=passport;UBTID=159753;UBTISSUED=BY;UBTEXDATE=2016-12-15;UBTADD=Czech Republik,Archeologicka 1,10500;SCOMFUND=Investments of the owners;CONFIRM=YES;CLREPR=Ivan Smith;';
if($wsRequest->Prepare_Data($request))
{
    $result = $wsRequest->Send('SaveCompanyProfile');
}



ShowClientVerificationInfo

This method’s purpose is to get MoneyPolo client Verification Info.

Input parameters of the method are:

Name Type Required Example
AccountPersonData object*See object MoneyPoloAccountPersonData

Output parameters of the method are:

Name Type Description
VerificationStatus Client Verification Status
ProfileStatus Client Profile Status
ClientDocuments Client Documents See Details

Client Document Row

Name Type Description
DocumentID uInt Document ID
Type string Document type
UploadStatus string Document Upload Status (Saved;Saving error;New)
UploadDate string Document Upload Date
VerificationStatus string See Document Verification Status

Document Verification Status

Code Description
BADCOPY Bad Photo or Document Copy Quality
BANKSTMNT Uncertified Bank Statement
EXPIRED Document Expired
WRONGADDRR Wrong Address
WRONGDOC Unsupported Document type
WRONGLANG Unsupported Language (EN,FR,CZ,RU only supported)
WRONGNAME Provided Name is different from the Document Owner
IN PROCESS In Process
OK Successfully Verified

Signature: PersonAccountID + PersonRUID + Key

PHP Example

//ShowClientVerificationInfo
$request['AccountPersonData']['PersonAccountID'] = '1234';
$request['AccountPersonData']['PersonRUID'] = '5678';
if($wsRequest->Prepare_Data($request))
{
    $result = $wsRequest->Send('ShowClientVerificationInfo');
}




CalculateFee

This method’s purpose is to calculate fee.

Input parameters of the method are:

Name Type Required Description
AccountPerson object*See object MoneyPoloAccountPersonData
OperationType string*See OperationType
Amount decimal*Operation amount
CurrencyCode string*Operation currency code
Param1 string Express, SWIFT
Param2 string Commission payment type, see ChargesCode


Output parameters of the method are:

Name Type Description
Fee decimal Operation fee
FixedAmount decimal Operation fee (fixed amount)
PercentAmount decimal Operation fee (percent amount)
MinimumAmount decimal Operation fee (minimum amount)
MaximumAmount decimal Operation fee (maximum amount)

Signature:

PersonAccountID + PersonRUID + OperationType + Amount + CurrencyCode + Param1 + Param2 + Key

PHP Example

//CalculateFee
$request['AccountPerson']['PersonAccountID'] = 1111;
$request['AccountPerson']['PersonRUID'] = '2222';
$request['OperationType'] = 'IncomingWire';
$request['Amount'] = '100';
$request['CurrencyCode'] = 'EUR';
$request['Param1'] = 'Express';
$request['Param2'] = '';
if($accRequest->Prepare_Data($request))
{
    $result = $accRequest->Send('CalculateFee');
}





GetPendingDetails

This method’s purpose is to show pending details.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object MoneyPoloAccountPersonData
CurrencyCode string(3) * USD Currency code of the transfer
Page int * 1 Page number
ItemsOnPage int * 10 Items on page
DateFrom string * 2000-01-01 From date
DateTo string * 2020-01-01 To date

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + CurrencyCode + Page + ItemsOnPage + DateFrom + DateTo

Output parameters of the method are:

Name Type Description
Pending details List of objects See object PendingDetails

PendingDetails object

Name Type
DocumentID uInt
Date string
Amount decimal
CurrencyCode string
AmountBC decimal
Info string

PHP Example

//GetPendingDetails 
$request['AccountPerson']['PersonAccountID'] = 11111;
$request['AccountPerson']['PersonRUID'] = '2222';
$request['CurrencyCode'] = 'USD';
$request['Page'] = '1';
$request['ItemsOnPage'] = '10';
$request['DateFrom'] = '2000-01-01';
$request['DateTo'] = '2020-01-01';
if($accRequest->Prepare_Data($request))
{
    $result = $accRequest->Send('GetPendingDetails');
}





GetHoldDetails

This method’s purpose is to show hold details.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object MoneyPoloAccountPersonData
CurrencyCode string(3) * USD Currency code of the transfer
Page int * 1 Page number
ItemsOnPage int * 10 Items on page
DateFrom string * 2000-01-01 From date
DateTo string * 2020-01-01 To date

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + CurrencyCode + Page + ItemsOnPage + DateFrom + DateTo

Output parameters of the method are:

Name Type Description
Hold details List of objects See object HoldDetails

HoldDetails object

Name Type
DocumentID uInt
TheDate string
Amount decimal
AmountBC decimal
CurrencyCode string
Comment string
DocClass string
SourceDocumentAmount decimal
SourceDocumentID uint

PHP Example

//GetHoldDetails 
$request['AccountPerson']['PersonAccountID'] = 11111;
$request['AccountPerson']['PersonRUID'] = '2222';
$request['CurrencyCode'] = 'USD';
$request['Page'] = '1';
$request['ItemsOnPage'] = '10';
$request['DateFrom'] = '2000-01-01';
$request['DateTo'] = '2020-01-01';
if($accRequest->Prepare_Data($request))
{
    $result = $accRequest->Send('GetHoldDetails');
}





GetChequesList

This method’s purpose is to show cheques list.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object MoneyPoloAccountPersonData
CurrencyCode string(3) * USD Currency code of the transfer
Page int * 1 Page number
ItemsOnPage int * 10 Items on page
DateFrom string * 2000-01-01 From date
DateTo string * 2020-01-01 To date

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + CurrencyCode + Page + ItemsOnPage + DateFrom + DateTo

Output parameters of the method are:

Name Type Description
Cheques list List of objects See object ChequesList

ChequesList object

Name Type
DocumentID uInt
Number string
AcceptanceDate string
Name string
iName string
Info string
Status string
Amount decimal
CurrencyCode string
TheDate string
Reason string

PHP Example

//GetChequesList
$request['AccountPerson']['PersonAccountID'] = 11111;
$request['AccountPerson']['PersonRUID'] = '2222';
$request['CurrencyCode'] = 'USD';
$request['Page'] = '1';
$request['ItemsOnPage'] = '10';
$request['DateFrom'] = '2000-01-01';
$request['DateTo'] = '2020-01-01';
if($accRequest->Prepare_Data($request))
{
    $result = $accRequest->Send('GetChequesList');
}




GetInwardDCDDetails

This method’s purpose is to get Inward direct cash deposit Details.

Input parameters of the method are:

Name Type Required Example Description
AccountPerson object * See object MoneyPoloAccountPersonData
CountryCode string * Bank country code
CurrencyCode string * Bank currency code

Signature:

AccountPerson.PersonAccountID + AccountPerson.PersonRUID + CountryCode + UseIPSecurity

Output parameters of the method are:

Name Type Description
InwardDCDDetails object See object InwardDCDDetails

PHP Example

//GetInwardDCDDetails
$request['AccountPerson']['PersonAccountID'] = 1111;
$request['AccountPerson']['PersonRUID'] = '2222';
$request['CountryCode'] = 'CZ';
$request['CurrencyCode'] = 'CZK';
if($accRequest->Prepare_Data($request))
{
    $result = $accRequest->Send('GetInwardDCDDetails');
}



InwardDCDDetails object

Name Type
CountryCode string
CurrencyCode string
Name string
Value string
Date string

Operation Types

Code Description Param1 Param2
CardFundsDepositQC Card to Account transfer Card type (QC;VQC;CMPCG;MPCG;RMPCG)
CardLoading Card Loading Card type (QC;VQC;CMPCG;MPCG;RMPCG) Priority(Express;SWIFT)
CardProcessing Card Processing Card Country Code (two-letter (ISO 3166-1 alpha-2)) [SP]Load card after(YES;NO)
CardRequest Card Request Card type (QC;VQC;CMPCG;MPCG;RMPCG) Delivery(DHL;Ordinary)
CardToCardPayments Card To Card Payments
ChequesLoadAcc Cheques (Load Acc)
OutwardEmoneyPayments Outward Emoney Payments Emoney code(QW;BC)
IncomingEmoneyPayments Incoming Emoney Payment Emoney code(QW;CU;SF) [SP]Load card after(YES;NO)
IncomingWire Incoming Wire Priority(Express;SWIFT;SEPA) [SP]Load card after(YES;NO)
DirectIncomingWire Direct Incoming Wire
InternalPayments Internal Payment To MoneyPolo AccountID
ChequesWithdrawFromAcc Cheques (Withdraw from Acc)
OutwardWire Outward Wire Priority(Express;SWIFT) Charges(OUR;BEN;SHA)
WithdrawalToCard Withdrawal To Card To CountryCode (two-letter (ISO 3166-1 alpha-2)) Provider code (NX;CONTACT;ANELIK)
DomesticPayment Domestic Payment
OutwardWireBankConf Automated bank confirmation
OutwardWireSWIFTConf SWIFT confirmation
ServicePayment Service payment (Trustly)



PHP Examples

<?php
class UWCFSAccount
{
    protected $service;
 
    private $algo = 'sha512';
 
    private $merchantCode = '--ENTER-MERCHANTCODE--';
    private $key = '--ENTER-KEY';
    private $addr = 'https://testapi.moneypolo.com:26443/UWCFSAccount.asmx?wsdl';	
 
    public $data = array();
 
    /**
    * Constructs the service
    */
    public function __construct ()
    {
        try
        {
            $this->service = new SoapClient($this->addr, array('trace' => 1));
        }
        catch (Exception $e)
        {
            return $e->getMessage();
        }
    }
 
    /**
    * Provides managment of errors calling the service's methods
    */
    public function __call($name, $arguments)
    {
        $result = false;
        $max_retries = 5;
        $retry_count = 0;
 
        while(!$result && $retry_count < $max_retries)
        {
            try
            {
                $result = parent::__call($name, $arguments);
            }
            catch(SoapFault $fault)
            {
                if($fault->faultstring != 'Could not connect to host')
                {
                    throw $fault;
                }
            }
            sleep(1);
            $retry_count++;
        }
        if ($retry_count == $max_retries)
        {
            throw new SoapFault('Could not connect to host after 5 attempts');
        }
        return $result;
    }
 
    public function PrepareDataManual($request, $variableForSign)
    {             
        $this->data['request'] = $request;
        $this->data['sign']['MerchantCode'] = $this->merchantCode;
        $this->data['sign']['Sign'] = strtoupper(
            hash($this->algo, $variableForSign.$this->key.'')
        );
        return true;
    }
 
    public function Prepare_Data($request, $parentName = '')
    {
        $this->data['request'] = array();	
 
		$this->data['request'] = $request;
 
        $this->data['sign']['MerchantCode'] = $this->merchantCode;
 
		$personData = '';
		if(isset($request['AccountPerson']['PersonAccountID'])) 
		{
			$personData  .= $request['AccountPerson']['PersonAccountID'];
		}
		if(isset($request['AccountPerson']['PersonRUID'])) 
		{
			$personData  .= $request['AccountPerson']['PersonRUID'];
			unset($request['AccountPerson']);
		}		
 
		if(isset($request['AccountPersonRequest']['PersonAccountID'])) 
		{
			$personData  .= $request['AccountPersonRequest']['PersonAccountID'];
		}
		if(isset($request['AccountPersonRequest']['PersonRUID'])) 
		{
			$personData  .= $request['AccountPersonRequest']['PersonRUID'];
			unset($request['AccountPersonRequest']);
		}
 
		$arrayToImplode = ($parentName != '' && isset($request[$parentName])) ? $request[$parentName] : $request;	
 
		echo $personData.implode('', $arrayToImplode);
 
        $this->data['sign']['Sign'] = strtoupper(
            hash($this->algo, $personData.implode('', $arrayToImplode).$this->key.'')
        );
        return true;
    }
 
    public function Send($methodName = '')
    {
		$result = $this->service->{$methodName}($this->data);
		echo "REQUEST:\n" . htmlspecialchars($this->service->__getLastRequest()) . "\n";
		echo "RESPONSE:\n" . htmlspecialchars($this->service->__getLastResponse()) . "\n";
        return $result;
    }
}
?>
<?php
$timezone = 'Europe/Prague';
date_default_timezone_set($timezone);
 
require_once ('UWCFSAccount.php');
$accRequest = new UWCFSAccount();
$request = array();
 
// put request
 
echo '<h1>Result</h1><pre>';
print_r($result);
echo '</pre>';
?>

Other errors

ID Description
0 Data format error
-999 Error in…
uwcfsaccount.txt · Last modified: 2018/07/02 16:30 by Alexandr Grishin