User Tools

Site Tools


uwcfsaccount

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
uwcfsaccount [2018/07/02 14:30]
uwcfsaccount [2018/07/02 15:30]
Alexandr Grishin [Operation Types]
Line 1: Line 1:
 +====== 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:
 +  * Bank transfer (payment details in your account secure.moneypolo.com);​
 +  * Emoney (http://​wiki.moneypolo.com/​doku.php/​emoneyoperations);​
 +  * Cash MoneyTransfer (http://​wiki.moneypolo.com/​doku.php/​uwcfsmoneytransfer).
 +
 +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.
 +
 +  - 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.
 +  - 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.
 +  - 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:
 +<​code>​
 +<​sign>​
 +  <​MerchantCode>​string</​MerchantCode>​
 +  <​Sign>​string</​Sign>​
 +</​sign>​
 +</​code>​
 +  * 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 |
 +| <​del>​ReferralUID</​del> ​           | 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 |
 +| <​del>​ReferralLogID</​del> ​         | 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 |
 +| <​del>​RequestAccessID</​del> ​   | int    | Reserved |
 +
 +**Signature:​**
 +
 +AccountType + PersonTitle + PersonFirstName + PersonLastName + PersonEmail + PersonMobile + CompanyName + Address1 + Address2 + City + State + Country_Code + ZIP + PersonPosition + PersonPassword + PersonRUID + ResidentialCountryCode + Key
 +
 +** PHP Example **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +** Method’s additional information **
 +
 +  * UWCFS Company sends and e-mail with Greeting Letter to the customer after successful account opening. (see [[uwcfsquickcard#​appendix_2_sample_e-mail_messages_sent_by_the_uwcfs_company_to_its_customers|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          ^ Description
 +| -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_object|AccountPerson]]. |
 +| Balances ​              | list of objects ​   | See object [[#​balance_object|Balance]]. |
 +
 +===Balance object===
 +^ Name          ^ Type      ^
 +| Currency ​     | string ​   |
 +| Amount ​       | decimal ​  |
 +| PendingAmount | string ​   |
 +| HoldAmount ​   | decimal ​  |
 +
 +**Signature:​**
 +
 +PersonAccountID + PersonRUID + Key
 +
 +** PHP Example **
 +<code php>
 +
 +//​2.UWCFS_GetAccountBalances
 +
 +    $request['​PersonAccountID'​] = 13801;
 +    $request['​PersonRUID'​] = '​11422';​
 +    if($accRequest->​Prepare_Data($request))
 +    {
 +        $result = $accRequest->​Send('​UWCFS_GetAccountBalances'​);​
 +    }
 +
 +//​UWCFS_GetAccountBalances//​
 +
 +</​code>​
 +
 +===== 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_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 [[#​accountperson_object|RequestInfo]] |
 +| UWCFS_GetAccountStatementResult.Statements ​ | object | See object [[#​statements_object|Statements]] ​  |
 +
 +===Statements object===
 +^ Name                        ^ Type  ^
 +| UWCFSCurrencyStatement ​     | See object [[#​uwcfscurrencystatement_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_object|TransactionDetails]] |
 +
 +===TransactionDetails object===
 +^ Name                         ^ Type              ^ Description ^
 +| UWCFSTransactionDetails ​     | list of objects ​  | See object [[#​uwcfstransactiondetails_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|Operation types]] |
 +| Beneficiary ​         | string ​  | |
 +
 +**Signature:​**
 +
 +AccountPersonRequest.PersonAccountID + AccountPersonRequest.PersonRUID + DateBeg + DateEnd + Key
 +
 +** PHP Example **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +===== 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_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 **
 +<code php>
 +
 +//​4.UWCFS_GetAccountList
 +
 +    $request['​PersonRUID'​] = '​126';​
 +    if($accRequest->​Prepare_Data($request))
 +    {    ​
 +        $result = $accRequest->​Send('​UWCFS_GetAccountList'​);​
 +    }
 +
 +//​UWCFS_GetAccountList//​
 +
 +</​code>​
 +
 +===== 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 <​sup>​1</​sup> ​                 | object ​    | *        | |See object [[#​accountperson_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)<​sup>​2</​sup>​ |
 +| 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! |
 +
 +* <​sup>​1</​sup>​ Use only merchant'​s AccountID and RUID;
 +
 +* <​sup>​2</​sup>​ 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 **
 +<code php>
 +//​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//​
 +</​code>​
 +
 +** 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_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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +===== 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_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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +===== 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 **
 +<code php>
 +
 +//​8.UWCFSCheckTransferStatus
 +
 +    $request['​DocumentID'​] = '​123456';​
 +
 +    if($accRequest->​PrepareDataManual($request,​ $request['​DocumentID'​]))
 +    {    ​
 +        $result = $accRequest->​Send('​UWCFSCheckTransferStatus'​);​
 +    }
 +
 +//​UWCFSCheckTransferStatus//​
 +
 +</​code>​
 +
 +
 +
 +
 +===== 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 **
 +<code php>
 +
 +//​9.UWCFS_CheckRegistration
 +
 +    $request['​Email'​] = '​yaroslav.solokha@gmail.com';​
 +    if($accRequest->​Prepare_Data($request))
 +    {
 +        $result = $accRequest->​Send('​UWCFS_CheckRegistration'​);​
 +    }
 +
 +//​UWCFS_CheckRegistration//​
 +
 +</​code>​
 +
 +===== 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_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             |
 +| <​del>​RateCalculationID</​del> ​             | 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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +=== 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_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 ​    | *        | Express|Express ​             |
 +| <​del>​RateCalculationID</​del> ​             | 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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +** Errors **
 +
 +[[#​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_object|AccountPerson]] |
 +| ValueDate ​             | string | * | YYYY-MM-DD ​                                    | Date of payment processing and transfering |
 +| ChargesCode ​           | string | * | [a-zA-Z]{3}$ ​                                 | Commission payment type, see  [[#​chargescode|ChargesCode]] |
 +| CurrencyCode ​          | string | * | [a-zA-Z]{3}$ ​                                 | Payment currency code |
 +| PriorityCode ​          | string | * | [a-zA-Z]{5,​7}$ ​                               | Payment priority type, see [[#​prioritycode|PriorityCode]]. |
 +| Beneficiary ​           | object | * |                                                | See object [[#​beneficiary|Beneficiary]] |
 +| BeneficiaryBank ​       | object | * |                                                | See object [[#​bank|Bank]] |
 +| CorrespondentBank ​     | object |   ​| ​                                               | See object [[#​correspondentbank|CorrespondentBank]] |
 +| Details ​               | string | * | [a-zA-Z0-9\s\/​\.\,​\-\@\$\%\&​\(\)\*\+]{0,​140}$ | Payment details <​sup>​1</​sup>​ |
 +| SWIFTConfirmation ​     | string | * | 0/1                                            | Whether the SWIFT confirmation is required <​sup>​2</​sup>​ |
 +| SWIFTConfirmationEmail | string |   | [A-Za-z0-9_\-\.\@]{1,​100}$ ​                   | E-mail to which SWIFT confirmation must be sent <​sup>​3</​sup>​ |
 +| 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|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|Address ]]| 
 +| INNCode | string | * | [0-9]{12}$ ​                        | INN code <​sup>​4</​sup>​ | 
 +| BICCode ​           | string | * | [0-9]{9}$ ​                         | BIC code <​sup>​4</​sup>​ | 
 +| CorrAccount ​       | string | * | [0-9]{20}$ ​                        | Correspondent account number <​sup>​4</​sup>​ | 
 +| PaymentType      | string | * | [0-9]{5}$ ​                         | Payment operation type <​sup>​4</​sup>​ | 
 +
 +
 +==== Bank ====
 +
 +^ Name     ^ Type       ^ Oblig   ^ Example ​              ^ Description ​           ^
 +| BankCodeType | string | * | [a-zA-Z]{3,​5}$ | Bank code type <​sup>​5</​sup>,​ see [[#​bankcodetype|BankCodeType]] | 
 +| BankCode | string | * | [a-zA-Z0-9]{1,​15}$ | Local bank code <​sup>​5</​sup>​ | 
 +| BankName | string | * | [a-zA-Z0-9\s\.\,​\-\(\)]{1,​35}$ | Bank name | 
 +| BankAddress | object| * |  | Bank address, see Object [[#​address|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|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.
 +
 +  * <​sup>​1</​sup>​ 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;​
 +  * <​sup>​2</​sup>​ The service is paid, confirmation payment is counted under current MoneyPolo tariffs;
 +  * <​sup>​3</​sup>​ If email is not stated, confirmation letter will be sent to current client’s email stated in MoneyPolo;
 +  * <​sup>​4</​sup>​ Following fields are obligatory on for payments in Russian Rubles;
 +  * <​sup>​5</​sup>​ 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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +=== 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 |
 +|<​del>​-1429</​del>​| <​del>​Field Beneficiary Bank SWIFT Code or Bank Code is required</​del>​ |
 +| -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_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_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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +** Errors **
 +
 +[[#​errors1|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 **
 +<code php>
 +
 +//​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//​
 +
 +</​code>​
 +
 +^ ID ^ Field ^ Description ^
 +| -1457|Amount ​   | Data format error |
 +| -1458|MerchantDocumentID ​  | Data format error |
 +| -1459|CurrencyCode ​   | Data format error |
 +| -1460|AccountNumber ​  | Data format error |
 +| -1461|Details ​  | 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_object|PersonDocData]] ​ |
 +
 +===PersonDocData object===
 +^ Name           ^ Type     ^ Description ^
 +| Type           | String ​  | Type |
 +| FieldName ​     | String ​  | Name |
 +| Value          | String ​  | Value|
 +
 +**Signature:​**
 +
 +PersonAccountID + PersonRUID + Key
 +
 +** PHP Example **
 +<code php>
 +
 +//​16.GetPersonDocData
 +
 +    $request['​PersonAccountID'​] = 1406;
 +    $request['​PersonRUID'​] = '​126';​
 +
 +    if($accRequest->​PrepareDataManual($request,​ $request['​PersonAccountID'​].$request['​PersonRUID'​]))
 +    {    ​
 +        $result = $accRequest->​Send('​GetPersonDocData'​);​
 +    }
 +
 +//​GetPersonDocData//​
 +
 +
 +</​code>​
 +\\
 +\\
 +===== 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_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_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 **
 +<code php>
 +//​ShowClientProfile
 +$request['​AccountPerson'​]['​PersonAccountID'​] = 12345;
 +$request['​AccountPerson'​]['​PersonRUID'​] = '​4567';​
 +if($wsRequest->​Prepare_Data($request))
 +{
 +    $result = $wsRequest->​Send('​ShowClientProfile'​);​
 +}
 +</​code>​
 +\\
 +\\
 +
 +===== 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_object|MoneyPoloAccountPersonData]] |
 +| ProfileData |string|*|See object [[#​MoneyPoloAccountPersonData_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|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 **
 +<code php>
 +//​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'​);​
 +}
 +</​code>​
 +\\
 +\\
 +\\
 +\\
 +===== 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_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_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 **
 +<code php>
 +//​ShowCompanyProfile
 +$request['​AccountPerson'​]['​PersonAccountID'​] = 12345;
 +$request['​AccountPerson'​]['​PersonRUID'​] = '​4567';​
 +if($wsRequest->​Prepare_Data($request))
 +{
 +    $result = $wsRequest->​Send('​ShowCompanyProfile'​);​
 +}
 +</​code>​
 +\\
 +\\
 +
 +===== 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_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|ShowCompanyProfile]]
 +
 +\\
 +
 +** Output parameters of the method are: **
 +
 +^ Name ^ Type ^ Description ^
 +| ProfileID| uInt   | Profile ID in MoneyPolo |
 +
 +**Signature:​**
 +
 +PersonAccountID + PersonRUID + ProfileData + Key
 +
 +** PHP Example **
 +<code php>
 +//​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'​);​
 +}
 +</​code>​
 +\\
 +\\
 +
 +===== 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_object|MoneyPoloAccountPersonData]] |
 +
 +** Output parameters of the method are: **
 +^ Name ^ Type ^ Description ^
 +| VerificationStatus | Client Verification Status ​ | |
 +| ProfileStatus | Client Profile Status | |
 +| ClientDocuments | Client Documents| See  [[#​Client_Document_Row|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 ]] |
 +
 +==== Document Verification Status ====
 +^ Code          ^ Description ^
 +| BADCOPY | Bad Photo or Document Copy Quality |
 +| BANKSTMNT | Uncertified Bank Statement |
 +| EXPIRED ​ | Document Expired |
 +| WRONGADDRR | Wrong Address |
 +| WRONGDOC | Unsupported [[uwcfsdocumentloader#​handbook_2_-_document_types|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 **
 +<code php>
 +//​ShowClientVerificationInfo
 +$request['​AccountPersonData'​]['​PersonAccountID'​] = '​1234';​
 +$request['​AccountPersonData'​]['​PersonRUID'​] = '​5678';​
 +if($wsRequest->​Prepare_Data($request))
 +{
 +    $result = $wsRequest->​Send('​ShowClientVerificationInfo'​);​
 +}
 +</​code>​
 +\\
 +\\
 +\\
 +===== CalculateFee =====
 +This method’s purpose is to calculate fee.
 +
 +** Input parameters of the method are: **
 +
 +^ Name                   ^ Type   ^ Required ​  ^ Description ​           ^
 +| AccountPerson |object|*|See object [[#​MoneyPoloAccountPersonData_object|MoneyPoloAccountPersonData]] |
 +| OperationType |string|*|See [[#​Operation_Types|OperationType]] |
 +| Amount |decimal|*|Operation amount |
 +| CurrencyCode |string|*|Operation currency code |
 +| Param1 |string| |Express, SWIFT |
 +| Param2 |string| |Commission payment type, see  [[#​chargescode|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 **
 +<code php>
 +//​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'​);​
 +}
 +</​code>​
 +\\
 +\\
 +\\
 +\\
 +===== 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_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_object|PendingDetails]] |
 +
 +
 +
 +==== PendingDetails object ====
 +^ Name            ^ Type     ^
 +| DocumentID ​     | uInt     |
 +| Date            | string ​  |
 +| Amount ​         | decimal ​ |
 +| CurrencyCode ​   | string ​  |
 +| AmountBC ​       | decimal ​ |
 +| Info            | string ​ |
 +
 +
 +** PHP Example **
 +<code php>
 +//​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'​);​
 +}
 +</​code>​
 +\\
 +\\
 +\\
 +\\
 +===== 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_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_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 **
 +<code php>
 +//​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'​);​
 +}
 +</​code>​
 +\\
 +\\
 +\\
 +\\
 +===== 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_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_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 **
 +<code php>
 +//​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'​);​
 +}
 +</​code>​
 +\\
 +\\
 +\\
 +===== 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_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_object|InwardDCDDetails]] |
 +
 +** PHP Example **
 +<code php>
 +//​GetInwardDCDDetails
 +$request['​AccountPerson'​]['​PersonAccountID'​] = 1111;
 +$request['​AccountPerson'​]['​PersonRUID'​] = '​2222';​
 +$request['​CountryCode'​] = '​CZ';​
 +$request['​CurrencyCode'​] = '​CZK';​
 +if($accRequest->​Prepare_Data($request))
 +{
 +    $result = $accRequest->​Send('​GetInwardDCDDetails'​);​
 +}
 +</​code>​
 +\\
 +\\
 +==== 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 =====
 +<code php>
 +<?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;
 +    }
 +}
 +?>
 +</​code>​
 +<code php>
 +<?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>';​
 +?>
 +</​code>​
 +
 +===== Other errors =====
 +
 +^ ID          ^ Description ^
 +| 0        | Data format error |
 +| -999| Error in... |
uwcfsaccount.txt · Last modified: 2018/07/02 14:30 (external edit)