moneta-api 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.yardopts +6 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +31 -0
  8. data/Rakefile +2 -0
  9. data/lib/moneta/api/data_mapper.rb +91 -0
  10. data/lib/moneta/api/requests/authorise_transaction_batch_request.rb +9 -0
  11. data/lib/moneta/api/requests/authorise_transaction_request.rb +15 -0
  12. data/lib/moneta/api/requests/cancel_transaction_batch_request.rb +10 -0
  13. data/lib/moneta/api/requests/cancel_transaction_request.rb +14 -0
  14. data/lib/moneta/api/requests/confirm_transaction_batch_request.rb +10 -0
  15. data/lib/moneta/api/requests/confirm_transaction_request.rb +9 -0
  16. data/lib/moneta/api/requests/create_account_request.rb +65 -0
  17. data/lib/moneta/api/requests/find_accounts_list_request.rb +38 -0
  18. data/lib/moneta/api/requests/find_last_operations_list_request.rb +24 -0
  19. data/lib/moneta/api/requests/find_operations_list_request.rb +26 -0
  20. data/lib/moneta/api/requests/forecast_transaction_request.rb +9 -0
  21. data/lib/moneta/api/requests/get_account_payment_password_challenge_request.rb +16 -0
  22. data/lib/moneta/api/requests/invoice_batch_request.rb +10 -0
  23. data/lib/moneta/api/requests/invoice_request.rb +10 -0
  24. data/lib/moneta/api/requests/payment_request.rb +9 -0
  25. data/lib/moneta/api/requests/refund_request.rb +42 -0
  26. data/lib/moneta/api/requests/transfer_request.rb +9 -0
  27. data/lib/moneta/api/requests/verify_payment_request.rb +10 -0
  28. data/lib/moneta/api/requests/verify_transaction_request.rb +51 -0
  29. data/lib/moneta/api/requests/verify_transfer_request.rb +10 -0
  30. data/lib/moneta/api/response_factory.rb +22 -0
  31. data/lib/moneta/api/responses/authorise_transaction_batch_response.rb +17 -0
  32. data/lib/moneta/api/responses/authorise_transaction_response.rb +10 -0
  33. data/lib/moneta/api/responses/cancel_transaction_batch_response.rb +17 -0
  34. data/lib/moneta/api/responses/cancel_transaction_response.rb +10 -0
  35. data/lib/moneta/api/responses/confirm_transaction_batch_response.rb +17 -0
  36. data/lib/moneta/api/responses/confirm_transaction_response.rb +10 -0
  37. data/lib/moneta/api/responses/create_account_response.rb +19 -0
  38. data/lib/moneta/api/responses/find_account_by_alias_response.rb +16 -0
  39. data/lib/moneta/api/responses/find_account_by_id_response.rb +16 -0
  40. data/lib/moneta/api/responses/find_accounts_list_response.rb +15 -0
  41. data/lib/moneta/api/responses/find_last_operations_list_response.rb +12 -0
  42. data/lib/moneta/api/responses/find_operations_list_response.rb +12 -0
  43. data/lib/moneta/api/responses/forecast_transaction_response.rb +16 -0
  44. data/lib/moneta/api/responses/get_account_payment_password_challenge_response.rb +16 -0
  45. data/lib/moneta/api/responses/get_operation_details_by_id_response.rb +15 -0
  46. data/lib/moneta/api/responses/invoice_batch_response.rb +17 -0
  47. data/lib/moneta/api/responses/invoice_response.rb +10 -0
  48. data/lib/moneta/api/responses/payment_response.rb +10 -0
  49. data/lib/moneta/api/responses/refund_response.rb +10 -0
  50. data/lib/moneta/api/responses/transfer_response.rb +9 -0
  51. data/lib/moneta/api/responses/verify_payment_response.rb +10 -0
  52. data/lib/moneta/api/responses/verify_transaction_response.rb +10 -0
  53. data/lib/moneta/api/responses/verify_transfer_response.rb +10 -0
  54. data/lib/moneta/api/service.rb +18 -0
  55. data/lib/moneta/api/service_methods.rb +150 -0
  56. data/lib/moneta/api/types/account_access_info.rb +24 -0
  57. data/lib/moneta/api/types/account_info.rb +72 -0
  58. data/lib/moneta/api/types/authorise_transaction_batch_request_type.rb +47 -0
  59. data/lib/moneta/api/types/authorise_transaction_request_type.rb +19 -0
  60. data/lib/moneta/api/types/cancel_transaction_batch_request_type.rb +42 -0
  61. data/lib/moneta/api/types/cancel_transaction_batch_response_type.rb +29 -0
  62. data/lib/moneta/api/types/cancel_transaction_request_type.rb +24 -0
  63. data/lib/moneta/api/types/cancel_transaction_response_type.rb +20 -0
  64. data/lib/moneta/api/types/confirm_transaction_batch_request_type.rb +47 -0
  65. data/lib/moneta/api/types/confirm_transaction_request_type.rb +53 -0
  66. data/lib/moneta/api/types/entity.rb +15 -0
  67. data/lib/moneta/api/types/find_operations_list_request_filter.rb +102 -0
  68. data/lib/moneta/api/types/forecast_transaction_response_type.rb +52 -0
  69. data/lib/moneta/api/types/invoice_batch_request_type.rb +46 -0
  70. data/lib/moneta/api/types/invoice_request_type.rb +49 -0
  71. data/lib/moneta/api/types/key_value_attribute.rb +18 -0
  72. data/lib/moneta/api/types/operation_info.rb +88 -0
  73. data/lib/moneta/api/types/operation_info_batch_response_type.rb +27 -0
  74. data/lib/moneta/api/types/operation_info_list.rb +41 -0
  75. data/lib/moneta/api/types/pager.rb +22 -0
  76. data/lib/moneta/api/types/payment_request_type.rb +58 -0
  77. data/lib/moneta/api/types/transaction_batch_response_type.rb +29 -0
  78. data/lib/moneta/api/types/transaction_request_type.rb +55 -0
  79. data/lib/moneta/api/types/transaction_response_type.rb +28 -0
  80. data/lib/moneta/api/types/verify_transaction_response_type.rb +18 -0
  81. data/lib/moneta/api/types/verify_transfer_response_type.rb +32 -0
  82. data/lib/moneta/api/version.rb +5 -0
  83. data/lib/moneta/api.rb +23 -0
  84. data/moneta-api.gemspec +31 -0
  85. data/spec/lib/moneta/api/requests/authorise_transaction_batch_request_spec.rb +71 -0
  86. data/spec/lib/moneta/api/requests/authorise_transaction_request_spec.rb +22 -0
  87. data/spec/lib/moneta/api/requests/create_account_request_spec.rb +16 -0
  88. data/spec/lib/moneta/api/requests/find_operations_list_request_spec.rb +23 -0
  89. data/spec/lib/moneta/api/requests/forecast_transaction_request_spec.rb +19 -0
  90. data/spec/lib/moneta/api/requests/get_account_payment_password_challenge_request_spec.rb +15 -0
  91. data/spec/lib/moneta/api/requests/payment_request_spec.rb +22 -0
  92. data/spec/lib/moneta/api/requests/transfer_request_spec.rb +19 -0
  93. data/spec/lib/moneta/api/response/find_account_by_id_spec.rb +10 -0
  94. data/spec/lib/moneta/api/service_spec.rb +9 -0
  95. data/spec/lib/moneta/api/types/operation_info_spec.rb +23 -0
  96. data/spec/spec_helper.rb +36 -0
  97. data/spec/support/matchers.rb +7 -0
  98. data/spec/support/wsdl +7743 -0
  99. data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_one_operation_transaction_transaction_.yml +10790 -0
  100. data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_two_operations_transaction_first_transaction_.yml +10790 -0
  101. data/spec/vcr/moneta_api_requests_authorisetransactionrequest_authorise_transaction/should_success.yml +10790 -0
  102. data/spec/vcr/moneta_api_requests_createaccountrequest/create_account_account_id_.yml +10789 -0
  103. data/spec/vcr/moneta_api_requests_findoperationslistrequest/find_operations_list_account_id_.yml +10794 -0
  104. data/spec/vcr/moneta_api_requests_forecasttransactionrequest/forecast_transaction_payer_currency_.yml +10802 -0
  105. data/spec/vcr/moneta_api_requests_getaccountpaymentpasswordchallengerequest/get_account_payment_password_challenge_.yml +10790 -0
  106. data/spec/vcr/moneta_api_requests_paymentrequest/payment_should_success.yml +10789 -0
  107. data/spec/vcr/moneta_api_requests_transferrequest/transfer_status_.yml +10789 -0
  108. data/spec/vcr/moneta_api_service_find_account_by_id/account_id_.yml +10789 -0
  109. metadata +302 -0
@@ -0,0 +1,19 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Запрос на регистрацию операции с блокировкой средств на счете плательщика.
5
+ # Завершить (подтвердить) операцию можно с помощью ConfirmTransactionRequest.
6
+ # Если операция не будет закончена с помощью ConfirmTransactionRequest, то
7
+ # операция будет отменена автоматически по истечению срока блокировки.
8
+ # Request for transaction registration and debiting funds from payer's account.
9
+ # To finish (confirm) this transaction use ConfirmTransactionRequest.
10
+ # Authorised but not cofirmed transactions are cancelled automaticaly after authorisation expiry.
11
+
12
+ class AuthoriseTransactionRequestType < TransactionRequestType
13
+ # @return [Integer] Номер операции. Необязательное поле.
14
+ # / Transaction ID. Optional.
15
+ property :transaction_id
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,42 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип для запроса на отмену операций в пакетном режиме.
5
+ # Batch mode transaction cancelation request type.
6
+
7
+ class CancelTransactionBatchRequestType < Entity
8
+ # @return [Boolean] Флаг, указывающий выполнять ли все денежные переводы в одной транзакции.
9
+ # Если transactional = true, то:
10
+ # при возникновении ошибки все проведенные операции будут отменены
11
+ # можно проводить только операции со счетами монеты. Нельзя выводить деньги на внешние платежные системы.
12
+ # Если transactional = false, то:
13
+ # при возникновении ошибки все проведенные операции будут сохранены
14
+ # можно проводить любые операции, которые доступны в TransferRequest
15
+ # если выставить флаг exitOnFailure = false, то при возникновении ошибки можно пропустить операцию
16
+ # и продолжить выполнение операций дальше
17
+ # / Joining all transfers in batch processing into one transaction. True -- all processed transfers will be rolled back on exceptions, no external transfers are allowed. False -- only current transfer rolled back on exceptions, external transfers are allowed.
18
+ property :transactional
19
+
20
+ # @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
21
+ # Используется только при transactional = false
22
+ # / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
23
+ property :exit_on_failure
24
+
25
+ # @return [Array[Moneta::Api::Types::CancelTransactionRequestType]] Набор операций, которые необходимо выполнить в одном пакете.
26
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
27
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
28
+ property :transaction
29
+
30
+ # @param [Moneta::Api::Types::CancelTransactionRequestType]
31
+ # @return void
32
+ def add_transaction(item)
33
+ if item.kind_of? Moneta::Api::Types::CancelTransactionRequestType
34
+ (@transaction ||=[]).push(item)
35
+ else
36
+ raise TypeError.new("TypeError: can't convert #{ item.class } into Moneta::Api::Types::CancelTransactionRequestType")
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,29 @@
1
+ require_relative 'cancel_transaction_response_type'
2
+
3
+ module Moneta
4
+ module Api
5
+ module Types
6
+ # Тип, описывающий атрибуты при ответе на запрос отмены операций в пакетной режиме.
7
+ # Transaction cancelation response in batch mode.
8
+
9
+ class CancelTransactionBatchResponseType
10
+ include Moneta::Api::DataMapper
11
+
12
+ # @return [String] Поле содержит описание ошибки, если операция не была проведена.
13
+ # В этом случае поле transaction - пустое. Если операция проведена,
14
+ # то поле error пустое, а поле transaction содержит детали операции.
15
+ # / Error description in case of tranfer processing failure. If transfer processed successfully "error" is empty and "transaction" element contains transaction details.
16
+ property :error
17
+
18
+ # @return [Moneta::Api::Types::CancelTransactionResponseType]
19
+ property :transaction, Moneta::Api::Types::CancelTransactionResponseType
20
+
21
+ # @return [String] Поле содержит код ошибки. Поле заполнено только тогда, когда есть описание ошибки в поле error.
22
+ # Для получения этого поля в запросе необходимо выставлять атрибут version равный или больше VERSION_2.
23
+ # Коды ошибок совпадают со значением элемента faultDetail (смотрите описание для этого элемента).
24
+ # / The field contains error code. The field "errorCode" is specified if the field "error" is present and contains error description. For retrieving errorCode the request attribute "version" has to be set to "VERSION_2" or grater. Error codes values correspond to "faultDetail" description.
25
+ property :error_code
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,24 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип для запроса на отмену операции.
5
+ # Transaction cancelation request type.
6
+
7
+ class CancelTransactionRequestType
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Integer] Номер операции
11
+ # / Transaction ID
12
+ property :transaction_id
13
+
14
+ # @return [String] Код протекции
15
+ # / Protection code
16
+ property :protection_code
17
+
18
+ # @return [String] Описание операции
19
+ # / Transaction description or comments
20
+ property :description
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий атрибуты при ответе на запрос отмены операции.
5
+ # Transaction cancelation response type.
6
+
7
+ class CancelTransactionResponseType
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Integer] Номер операции
11
+ # / Transaction ID
12
+ property :transaction_id
13
+
14
+ # @return [String] Статус операции
15
+ # / Transaction status
16
+ property :operation_status
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,47 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип для запроса подтверждения операции в пакетном режиме.
5
+ # Batch mode transaction confirmation request type.
6
+
7
+ class ConfirmTransactionBatchRequestType < Entity
8
+ # @return [Boolean] Флаг, указывающий выполнять ли все денежные переводы в одной транзакции.
9
+ # Если transactional = true, то:
10
+ # при возникновении ошибки все проведенные операции будут отменены
11
+ # можно проводить только операции со счетами монеты. Нельзя выводить деньги на внешние платежные системы.
12
+ # Если transactional = false, то:
13
+ # при возникновении ошибки все проведенные операции будут сохранены
14
+ # можно проводить любые операции, которые доступны в TransferRequest
15
+ # если выставить флаг exitOnFailure = false, то при возникновении ошибки можно пропустить операцию
16
+ # и продолжить выполнение операций дальше
17
+ # / Joining all transfers in batch processing into one transaction. True -- all processed transfers will be rolled back on exceptions, no external transfers are allowed. False -- only current transfer rolled back on exceptions, external transfers are allowed.
18
+ property :transactional
19
+
20
+ # @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
21
+ # Используется только при transactional = false
22
+ # / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
23
+ property :exit_on_failure
24
+
25
+ # @return [Array[Moneta::Api::Types::Entity*]] Набор операций, которые необходимо выполнить в одном пакете.
26
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
27
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
28
+ property :transaction
29
+
30
+ # Набор операций, которые необходимо выполнить в одном пакете.
31
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
32
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
33
+ #
34
+ # @param [Moneta::Api::Types::Entity*]
35
+ # @return void
36
+ def add_transaction(item)
37
+ parents = item.class.ancestors
38
+ if parents.include?(Moneta::Api::Types::Entity)
39
+ (@transaction ||=[]).push(item)
40
+ else
41
+ raise TypeError.new("TypeError: #{ item.class } have not parent Moneta::Api::Types::Entity")
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,53 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип для запроса подтверждения операции.
5
+ # Transaction confirmation request type.
6
+
7
+ class ConfirmTransactionRequestType
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Integer] Номер операции
11
+ # / Transaction ID
12
+ property :transaction_id
13
+
14
+ # @return [String] Платежный пароль счета плательщика
15
+ # / Payment password for payer account
16
+ property :payment_password
17
+
18
+ # @return [String] Код протекции
19
+ # / Protection code
20
+ property :protection_code
21
+
22
+ # @return [Moneta::Api::Types::OperationInfo] Набор полей, которые необходимо сохранить в качестве атрибутов операции. Значения дат в формате dd.MM.yyyy HH:mm:ss
23
+ # / Key-value pairs that will be saved as a transaction attributes. Use format dd.MM.yyyy HH:mm:ss for date values
24
+ property :operation_info
25
+
26
+ # @return [Float] Сумма операции.
27
+ # Если флаг isPayerAmount отсутствует
28
+ # и пользователь имеет доступ только к счету плательщика,
29
+ # то интерпретируется как сумма к списанию (в валюте плательщика).
30
+ # Если флаг isPayerAmount отсутствует
31
+ # и пользователь имеет доступ только к счету получателя,
32
+ # то интерпретируется как сумма к зачислению (в валюте получателя).
33
+ # / Transaction amount. If isPayerAmount is omitted and user has access only to payer account, then is interpreted as debit amount (in payer's currency). If isPayerAmount is omitted and user has access only to payee account, then is interpreted as credit amount (in payee's currency).
34
+ property :amount
35
+
36
+ # @return [Boolean] Если пользователь имеет доступ как к счету плательщика, так и счету получателя,
37
+ # то флаг isPayerAmount обязателен.
38
+ # Если флаг isPayerAmount установлен (true), то amount используется как сумма к списанию (в валюте плательщика).
39
+ # Если флаг isPayerAmount сброшен (false), то amount используется как сумма к зачислению (в валюте получателя).
40
+ # / If user has access to both accounts, then isPayerAmount flag is obligatory. If isPayerAmount flag is "true", then amount is used as debit amount (in payer's currency). If isPayerAmount flag is "false", then amount is used as credit amount (in payee's currency).
41
+ property :is_payer_amount
42
+
43
+ # @return [String] Запрос для платежного пароля
44
+ # / Payment password challenge
45
+ property :payment_password_challenge
46
+
47
+ # @return [String] Внешний номер операции
48
+ # / External transaction ID
49
+ property :client_transaction
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,15 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Базовый тип, содержащий атрибут "version".
5
+ # Base type containing "version" attribute.
6
+
7
+ class Entity
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String]
11
+ property :version
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,102 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Фильтр, по которому ищем операции.
5
+ # Transactions filter.
6
+
7
+ class FindOperationsListRequestFilter
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Integer] ID пользователя в системе МОНЕТА.РУ
11
+ # / Structure identificator in MONETA.RU
12
+ property :unit_id
13
+
14
+ # @return [Integer] Номер счета
15
+ # / Account number
16
+ property :account_id
17
+
18
+ # @return [DateTime] Дата начала периода
19
+ # / Period's start
20
+ property :date_from
21
+
22
+ # @return [DateTime] Дата конца периода
23
+ # / Period's end
24
+ property :date_to
25
+
26
+ # @return [Integer] Номер операции в системе МОНЕТА.РУ
27
+ # / Transaction ID in MONETA.RU
28
+ property :operation_id
29
+
30
+ # @return [Float] Сумма от... Ищутся все операции, которые проходили
31
+ # на большую или равную сумму. Если указано это поле, то обязательно надо
32
+ # заполнить Currency
33
+ # / Minimal transaction amount. If specified currencyCode filter parameter is required.
34
+ property :amount_from
35
+
36
+ # @return [Float] Сумма до... Ищутся все операции, которые проходили
37
+ # на меньшую или равную сумму. Если указано это поле, то обязательно надо
38
+ # заполнить Currency
39
+ # / Maximal transaction amount. If specified currencyCode filter parameter is required.
40
+ property :amount_to
41
+
42
+ # @return [String] Валюта, по которой проходили операции
43
+ # / Currency of transaction account.
44
+ property :currency_code
45
+
46
+ # @return [Integer] Корреспонденский номер счета в системе МОНЕТА.РУ
47
+ # / Correspondent account number in MONETA.RU
48
+ property :target_account_id
49
+
50
+ # @return [String] Статус операции
51
+ # / Transaction status
52
+ property :operation_status
53
+
54
+ # @return [String] Внешний номер операции
55
+ # / External transaction ID
56
+ property :client_transaction
57
+
58
+ # @return [Integer]
59
+ # 1 - все операции;
60
+ # 2 - операции, где деньги были получены (сумма > 0);
61
+ # 3 - операции, где деньги были потрачены (сумма < 0).
62
+ # 1 - all transactions;
63
+ # 2 - credit transactions;
64
+ # 3 - debit transactions.
65
+ property :operation_amount_type_id
66
+
67
+ # @return [String] Название свойства операции. Может принимать следующие значения:
68
+ # YANDEXACCOUNT - счет в системе Яндекс.Деньги;
69
+ # WEBMONEYWMID - WebMoney WMID;
70
+ # WEBMONEYPURSE - WebMoney кошелек;
71
+ # CONTACTTRANSFERORDERNUMBER - Номер перевода в системе Contact;
72
+ # WIRETRANSFERORDERNUMBER - Номер платежного поручения в банковском переводе;
73
+ # Значение свойства указывается в поле propertyValue.
74
+ # The transaction property name may take following values:
75
+ # YANDEXACCOUNT - user's account number in Yandex.Money;
76
+ # WEBMONEYWMID - user's WMID in WebMoney;
77
+ # WEBMONEYPURSE - user's purse number in WebMoney;
78
+ # CONTACTTRANSFERORDERNUMBER - transfer idenitification number in Contact;
79
+ # WIRETRANSFERORDERNUMBER - bank transfer identification number.
80
+ # The value of property has to be specified in "propertyValue" element.
81
+ property :property_name
82
+
83
+ # @return [String] Значение свойства операции.
84
+ # Поиск происходит по прямому совпадению. Для задания маски
85
+ # можно указать спец-символы - "*" или "?".
86
+ # / Transaction property value. Wildcards "*" and "?" may be used.
87
+ property :property_value
88
+
89
+ # @return [Integer]
90
+ # 1 - Ввод средств;
91
+ # 2 - Вывод средств;
92
+ # 3 - Внутренний перевод;
93
+ # 4 - Товары и услуги.
94
+ # 1 - Deposit;
95
+ # 2 - Withdrawal;
96
+ # 3 - Transfer;
97
+ # 4 - Goods and services.
98
+ property :operation_category_id
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,52 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий суммы и комиссии в предварительном расчете операции.
5
+ # Type describes amount and fees for preliminary calculation of transaction.
6
+
7
+ class ForecastTransactionResponseType
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Integer] Номер счета плательщика
11
+ # / Payer account number
12
+ property :payer
13
+
14
+ # @return [String] Валюта счета плательщика
15
+ # / Currency of payer account
16
+ property :payer_currency
17
+
18
+ # @return [Float] Сумма к списанию
19
+ # / Debit amount
20
+ property :payer_amount
21
+
22
+ # @return [Float] Комиссия списания средств
23
+ # / Debit fee
24
+ property :payer_fee
25
+
26
+ # @return [Integer] Номер счета получателя
27
+ # / Payee account number
28
+ property :payee
29
+
30
+ # @return [String] Валюта счета получателя
31
+ # / Currency of payee account
32
+ property :payee_currency
33
+
34
+ # @return [Float] Сумма к зачислению
35
+ # / Credit amount
36
+ property :payee_amount
37
+
38
+ # @return [Float] Комиссия зачисления средств
39
+ # / Credit fee
40
+ property :payee_fee
41
+
42
+ # @return [String] Название счета плательщика
43
+ # / Payer account alias
44
+ property :payer_alias
45
+
46
+ # @return [String] Название счета получателя
47
+ # / Payee account alias
48
+ property :payee_alias
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,46 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий параметры операции в запросах в пакетном режиме.
5
+ # Transaction parameters type for requests in batch processing mode.
6
+
7
+ class InvoiceBatchRequestType < Entity
8
+ # @return [Boolean] Флаг, указывающий выполнять ли все денежные переводы в одной транзакции.
9
+ # Если transactional = true, то:
10
+ # при возникновении ошибки все проведенные операции будут отменены
11
+ # можно проводить только операции со счетами монеты. Нельзя выводить деньги на внешние платежные системы.
12
+ # Если transactional = false, то:
13
+ # при возникновении ошибки все проведенные операции будут сохранены
14
+ # можно проводить любые операции, которые доступны в TransferRequest
15
+ # если выставить флаг exitOnFailure = false, то при возникновении ошибки можно пропустить операцию
16
+ # и продолжить выполнение операций дальше
17
+ # / Joining all transfers in batch processing into one transaction. True -- all processed transfers will be rolled back on exceptions, no external transfers are allowed. False -- only current transfer rolled back on exceptions, external transfers are allowed.
18
+ property :transactional
19
+
20
+ # @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
21
+ # Используется только при transactional = false
22
+ # / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
23
+ property :exit_on_failure
24
+
25
+ # @return [Moneta::Api::Types::InvoiceRequestType] Набор операций, которые необходимо выполнить в одном пакете.
26
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
27
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
28
+ property :transaction
29
+
30
+ # Набор операций, которые необходимо выполнить в одном пакете.
31
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
32
+ # Set of transfers to be processed in one batch.
33
+ # Processed in order of appearance.
34
+ # @param[Moneta::Api::Types::InvoiceRequestType]
35
+ # @return void
36
+ def add_transaction(item)
37
+ if item.kind_of? Moneta::Api::Types::InvoiceRequestType
38
+ (@transaction ||=[]).push(item)
39
+ else
40
+ raise TypeError.new("TypeError: can't convert #{ item.class } into Moneta::Api::Types::InvoiceRequestType")
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,49 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий параметры операции для выставления счета к оплате.
5
+ # Transaction parameters type for making new invoice (request for payment).
6
+
7
+ class InvoiceRequestType
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Integer] Номер счета плательщика
11
+ # / Payer account number
12
+ property :payer
13
+
14
+ # @return [Integer] Номер счета получателя
15
+ # / Payee account number
16
+ property :payee
17
+
18
+ # @return [Float] Сумма
19
+ # / Amount
20
+ property :amount
21
+
22
+ # @return [String] Внешний номер операции
23
+ # / external transaction identificator
24
+ property :client_transaction
25
+
26
+ # @return [String] Описание операции
27
+ # / Transaction description or comments
28
+ property :description
29
+
30
+ # @return [String] Произвольный параметр
31
+ # / Custom parameter
32
+ property :mnt_custom1
33
+
34
+ # @return [String] Произвольный параметр
35
+ # / Custom parameter
36
+ property :mnt_custom2
37
+
38
+ # @return [String] Произвольный параметр
39
+ # / Custom parameter
40
+ property :mnt_custom3
41
+
42
+ # @return [Moneta::Api::Types::OperationInfo] Набор полей, которые необходимо сохранить в качестве атрибутов
43
+ # операции. Значения дат в формате dd.MM.yyyy HH:mm:ss
44
+ # / Key-value pairs that will be saved as a transaction attributes. Use format dd.MM.yyyy HH:mm:ss for date values
45
+ property :operation_info
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,18 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, который позволяет работать с сущностями типа "ключ-значение".
5
+ # Key-value pairs type.
6
+
7
+ class KeyValueAttribute
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String]
11
+ property :key
12
+
13
+ # @return [String]
14
+ property :value
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,88 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий операцию в системе МОНЕТА.РУ.
5
+ # Он представляет собой номер (id) операции и набор полей,
6
+ # которые присутствуют у данной операции. Поля представлены в виде "ключ-значение".
7
+ # Transaction type contains transaction id and key-value pairs representing transaction attributes.
8
+
9
+ class OperationInfo
10
+ include Moneta::Api::DataMapper
11
+
12
+ # @return [Integer] Номер операции
13
+ # / Transaction ID
14
+ property :id
15
+
16
+ # @return [Array[KeyValueAttribute]] Поля операции. Полей в операции может быть 0 и более.
17
+ # Список полей:
18
+ # * clienttransaction - внешний (не в системе МОНЕТА.РУ) номер операции;
19
+ # * statusid - статус операции;
20
+ # * typeid - тип операции:
21
+ # * 2,10 - оплата с пользовательского счета,
22
+ # * 3 - оплата с внешней платежной системы,
23
+ # * 7,14 - пополнение счета,
24
+ # * 4,13 - вывод на внешнюю платежную систему,
25
+ # * 11 - вывод на пользовательский счет,
26
+ # * 12 - внутренний перевод;
27
+ # * category - категория операции:
28
+ # * DEPOSIT - ввод средств,
29
+ # * WITHDRAWAL - вывод средств,
30
+ # * TRANSFER - внутренний перевод,
31
+ # * BUSINESS - товары и услуги;
32
+ # * modified - время последнего изменения операции;
33
+ # * sourceaccountid - номер счета, с которого произведена операция;
34
+ # * sourcecurrencycode - валюта счета;
35
+ # * sourceamount - сумма по операции;
36
+ # * sourceamountfee - сумма комиссии;
37
+ # * sourceamounttotal - общая сумма с учетом комиссии;
38
+ # * targetaccountid - корреспондентский счет;
39
+ # * targetalias - название корреспондентского счета;
40
+ # * isreversed - если "true", то sourceaccountid=получатель, targetaccountid=плательщик;
41
+ # * customfield:* - произвольный набор значений.
42
+ # В операции их может быть несколько.
43
+ # Полный ключ атрибута состоит из префикса ("customfield:") и тэга (32 символа).
44
+ # Например, "customfield:name".
45
+ #
46
+ # Transaction attributes. Attributes set may be empty.
47
+ # Attributes list:
48
+ # * clienttransaction - external transaction ID;
49
+ # * statusid - transaction status;
50
+ # * typeid - transaction type:
51
+ # * 2,10 - payment from user account,
52
+ # * 3 - payment from external system,
53
+ # * 7,14 - deposit,
54
+ # * 4,13 - withdrawal to external system,
55
+ # * 11 - withdrawal to user account,
56
+ # * category - transaction category:
57
+ # * DEPOSIT,
58
+ # * WITHDRAWAL,
59
+ # * TRANSFER,
60
+ # * BUSINESS;
61
+ # * modified - transaction modification timestamp;
62
+ # * sourceaccountid - account number;
63
+ # * sourcecurrencycode - account currency;
64
+ # * sourceamount - transaction amount;
65
+ # * sourceamountfee - transaction commission;
66
+ # * sourceamounttotal - total transaction amount incl. commission;
67
+ # * targetaccountid - correspondent account number;
68
+ # * targetalias - alias of correspondent account;
69
+ # * isreversed - if "true", then sourceaccountid=payee, targetaccountid=payer;
70
+ # * customfield:* - custom list of values.
71
+ # The transaction may contain several attributes with different keys.
72
+ # The full attribute's key consists of prefix ("customfield:") and tag (32 characters).
73
+ # For example, "customfield:name".
74
+ property :attribute, Moneta::Api::Types::KeyValueAttribute
75
+
76
+ # @param [Moneta::Api::Types::KeyValueAttribute]
77
+ # @return item
78
+ def add_attribute(item)
79
+ if item.kind_of? Moneta::Api::Types::KeyValueAttribute
80
+ (@attribute ||=[]).push(item)
81
+ else
82
+ raise TypeError.new("TypeError: can't convert #{ item.class } into Moneta::Api::Types::KeyValueAttribute")
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,27 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий атрибуты операции в ответах в пакетном запросе.
5
+ # Transaction attributes type for responses in batch processing mode.
6
+
7
+ class OperationInfoBatchResponseType
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String] Поле содержит описание ошибки, если операция не была проведена.
11
+ # В этом случае поле transaction - пустое. Если операция проведена,
12
+ # то поле error пустое, а поле transaction содержит детали операции.
13
+ # / Error description in case of tranfer processing failure. If transfer processed successfully "error" is empty and "transaction" element contains transaction details.
14
+ property :error
15
+
16
+ # @return [Moneta::Api::Types::OperationInfo]
17
+ property :transaction, Moneta::Api::Types::OperationInfo
18
+
19
+ # @return [String] Поле содержит код ошибки. Поле заполнено только тогда, когда есть описание ошибки в поле error.
20
+ # Для получения этого поля в запросе необходимо выставлять атрибут version равный или больше VERSION_2.
21
+ # Коды ошибок совпадают со значением элемента faultDetail (смотрите описание для этого элемента).
22
+ # / The field contains error code. The field "errorCode" is specified if the field "error" is present and contains error description. For retrieving errorCode the request attribute "version" has to be set to "VERSION_2" or grater. Error codes values correspond to "faultDetail" description.
23
+ property :error_code
24
+ end
25
+ end
26
+ end
27
+ end